Page 293 - Web性能权威指南
P. 293

pc.addstream(stream); ➍
                       pc.createOffer(function(offer) { ➎
                         pc.setLocalDescription(offer); ➏
                         signalingChannel.send(offer.sdp); ➐
                       });
                     }

                     function logError() { ... }

                 ➊ 初始化共享的发信通道
                 ➋ 初始化 RTCPeerConnection 对象
                 ➌ 向浏览器请求音频流
                 ➍ 通过 RTCPeerConnection 注册本地音频流
                 ➎ 创建端到端连接的 SDP(提议)描述
                 ➏ 以生成的 SDP 作为端到端连接的本地描述
                 ➐ 通过发信通道向远端发送 SDP 提议


                            本书示例将使用不带前缀的 API,也就是 W3C 标准中定义的形式。实际
                            上,在所有浏览器都最终实现该标准之前,你需要根据自己的浏览器调整
                            示例代码。

                 WebRTC 使用 SDP(Session  Description  Protocol,会话描述协议)描述端到端连接
                 的参数。SDP 不包含媒体本身的任何信息,仅用于描述“会话状况”,表现为一系
                 列的连接属性:要交换的媒体类型(音频、视频及应用数据)、网络传输协议、使用
                 的编解码器及其设置、带宽及其他元数据。

                 在前面的例子中,通过 RTCPeerConnection 对象注册了本地音频流之后,我们调用
                 createOffer() 生成有关会话的 SDP 描述。生成的 SDP 包含什么信息?下面我们就
                 来看一看:

                    (……省略的内容……)
                     m=audio 1 RTP/SAVPF 111 ... ➊
                     a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level
                     a=candidate:1862263974 1 udp 2113937151 192.168.1.73 60834 typ host ... ➋
                     a=mid:audio
                     a=rtpmap:111 opus/48000/2 ➌
                     a=fmtp:111 minptime=10
                    (……省略的内容……)
                 ➊ 带反馈的安全音频信息
                 ➋ 媒体流的候选 IP、端口及协议


                                                                              WebRTC   |   283
   288   289   290   291   292   293   294   295   296   297   298