首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在Safari (和所有浏览器)中查看RTCPeerConnection对象中使用的sdp计划( plan -b或unified-plan)?

在Safari浏览器中查看RTCPeerConnection对象中使用的sdp计划(plan-b或unified-plan),可以通过以下步骤实现:

  1. 首先,确保你已经创建了RTCPeerConnection对象,并且已经通过getUserMedia方法获取了本地的媒体流。
  2. 在RTCPeerConnection对象创建后,可以通过调用其localDescription属性来获取本地的SDP(Session Description Protocol)描述信息。SDP描述了媒体流的相关参数,包括编解码器、传输协议等。
  3. 要查看SDP中使用的计划类型(plan-b或unified-plan),可以通过访问SDP的sdp属性,并查找"plan-b"或"unified-plan"的字符串。

以下是一个示例代码片段,展示了如何在Safari浏览器中查看RTCPeerConnection对象中使用的SDP计划:

代码语言:txt
复制
// 创建RTCPeerConnection对象
const peerConnection = new RTCPeerConnection();

// 获取本地媒体流
navigator.mediaDevices.getUserMedia({ audio: true, video: true })
  .then(stream => {
    // 将本地媒体流添加到RTCPeerConnection对象中
    stream.getTracks().forEach(track => {
      peerConnection.addTrack(track, stream);
    });

    // 创建SDP描述
    return peerConnection.createOffer();
  })
  .then(offer => {
    // 设置本地SDP描述
    return peerConnection.setLocalDescription(offer);
  })
  .then(() => {
    // 获取本地SDP描述
    const localSDP = peerConnection.localDescription.sdp;

    // 查找SDP中的计划类型
    const planB = localSDP.includes("plan-b");
    const unifiedPlan = localSDP.includes("unified-plan");

    // 打印计划类型
    if (planB) {
      console.log("使用的计划类型为plan-b");
    } else if (unifiedPlan) {
      console.log("使用的计划类型为unified-plan");
    } else {
      console.log("未找到计划类型");
    }
  })
  .catch(error => {
    console.error("发生错误:", error);
  });

需要注意的是,以上代码片段仅适用于Safari浏览器和支持RTCPeerConnection对象的浏览器。对于其他浏览器,可能需要使用不同的方法来获取SDP描述和计划类型。

此外,根据您的要求,我无法提供腾讯云相关产品和产品介绍链接地址。如果您需要了解腾讯云的相关产品,建议您访问腾讯云官方网站或咨询腾讯云的客服人员。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

【前端实时音视频系列】WebRTC入门概览

信令服务器 所谓信令(signaling)服务器,是一个帮助双方建立连接「中间人」,WebRTC并没有规定信令服务器标准,意味着开发者可以用任何技术来实现,WebSocketAJAX。...const pc2 = new RTCPeerConnection({...}); 在寻找对等端阶段,信令服务器工作一般是标识与验证参与者身份,浏览器连接信令服务器并发送会话必须信息,房间号、账号信息等...B VS Unified Plan 在WebRTC发展过程SDP语义(semantics)也发生了多次改变,目前使用最多Plan BUnified Plan两种。...两者均可在一个PeerConnection中表示多路媒体流,区别在于: Plan B所有视频流所有音频流各自放在一个m=值里,用ssrc区分 Unified Plan:每路流各自用一个m=值 目前最新发布...Chrome浏览器支持通过以下API获取当前使用semantics: // ChromeRTCPeerconnection.getConfiguration().sdpSemantics; // 'unified-plan

1.9K20
  • WebRTC:一个视频聊天简单例子

    一、相关API简介 在前面的章节,已经对WebRTC相关重要知识点进行了介绍,包括涉及网络协议、会话描述协议、如何进行网络穿透等,剩下就是WebRTCAPI了。...候选地址交换,同样采用前面提到信令服务,伪代码如下: // 设置本地会话描述信息 const localPeer = new RTCPeerConnection(iceConfig); const...evt.candidate) { sendToPeerViaSignalingServer(SIGNALING_CANDIDATE, evt.candidate); } } 四、音视频采集 可以使用浏览器提供...非常多,因为WebRTC本身就比较复杂,随着时间推移,WebRTC某些API(包括某些协议细节)也在改动被废弃,这其中也有向后兼容带来复杂性,比如本地视频采集后加入传输流,可以采用 addStream... addTrack addTransceiver,再比如会话描述版本从plan-b迁移到unified-plan

    2.9K30

    webrtc开发入门_统计简单应用

    1、建立WebRTC会话 建立WebRTC连接需要如下几个步骤: 获取本地媒体(getUserMedia(),MediaStream API) 在浏览器对等端(其它浏览器终端)之间建立对等连接(RTCPeerConnection...L上js将L会话描述对象(answer,应答)发送至Web服务器 Web服务器转发应答至M上js ML开始交互,确定访问对方最佳方式 完成后,ML开始协商通信密钥 ML开始交换语音、视频数据...WebRTC三角形会话具体调用流程: 说明: SDP对象传输可能是一个来回反复过程,并且该过程采用协议并未标准化 WebRTC梯形会话方式具体调用流程: 说明: 此场景...1、信令作用 协商媒体功能设置 标识验证会话参与者身份(交换SDP对象信息:媒体类型、编解码器、带宽等元数据) 控制媒体会话、指示进度、更改会话、终止会话 双占用分解 简单地说,信令就是协调通讯过程...实际该过程可能会反复多次。 WebRTC使用RTCSessionDescription对象表示提议和应答。每个浏览器都将生成一个该对象

    1.1K10

    WebRTC介绍及简单应用

    说明: 此场景浏览器ML直接交换媒体,只是它们运行Web服务器不用而已。...完整代码查看:https://github.com/caiya/webrtc-demo.git 信令 在WebRTC,信令起着举足轻重作用。...1、信令作用 协商媒体功能设置 标识验证会话参与者身份(交换SDP对象信息:媒体类型、编解码器、带宽等元数据) 控制媒体会话、指示进度、更改会话、终止会话 双占用分解 简单地说,信令就是协调通讯过程...4、信令交互RTCPeerConnection建立 WebRTC使用RTCPeerConnection建立连接传送流数据,在建立RTCPeerConnection实例之后,想要建立点对点信道,需要做两件事...实际该过程可能会反复多次。 WebRTC使用RTCSessionDescription对象表示提议和应答。每个浏览器都将生成一个该对象

    6.1K20

    WebRTC信令内网穿透技术 STUN TURN

    “查找候选地址candidate”一词是指使用ICE框架查找网络接口端口过程。 Alice创建RTCPeerConnection对象时候会生成一个onicecandidate句柄。...如果你想查看视频对话过程offer/answercandidate交互过程log,可以从下面的页面查看或者下载一个完整WebRTC信令统计表格:Chrome浏览器进入这个页面chrome:/...它已被移植到各种后端,但可能其Node版本是最有名,我们在下面的示例中使用它。 在这个例子没有WebRTC:它设计只是为了展示如何在Web应用程序构建信令。...可以使用Command-Option-J(Mac)Ctrl-Shift-J(Win)命令来查看浏览器此时处理过程。...浏览器之外VoIP,电话消息 浏览器运行WebRTC应用程序可能需要与在另一通信平台(例如电话视频会议系统)上运行设备平台之间建立通信,WebRTC标准化特性使这种情况成为可能。

    5.2K80

    WebRTC 教程(1)

    浏览器通信有主要两种传输信道:HTTP WebSockets。 HTTP 主要用于获取网页内容,文字图片等,是一种客户服务类型协议,其中浏览器是客户端,而网页服务器是服务端。...信令服务器可以由任意服务器技术搭建, WebSocket、Socket.io、SIP 等。 RTCPeerConnection 是 WebRTC 使用 API 来建立用户间连接并通信。...一个用户发送一个初始 SDP 请求来创建多媒体通信会话,对端收到后可以选择创建一个 SDP 答复来接受拒绝这个 SDP 请求。...移动嵌入式设备 SDK 也有,WebRTC 可以在几乎所有地方开发使用。...WebRTC 在大部分常见浏览器中都可以用, Google Chrome、Mozilla Firefox、Safari 等。WebRTC 还可以嵌入在非浏览器应用

    2.1K20

    WebRTC 教程 (3)

    WebRTC 教程(1) WebRTC 教程(2) 目录 WebRTC: 如何在浏览器启用/禁用 Chrome Firefox Safari Microsoft Edge Opera WebRTC...浏览器,WebRTC 是默认开启,如果没有开启,就需要检查是否有其他扩展在阻拦 WebRTC 服务, WebRTC Leak Prevent WebRTC Control Easy WebRTC...Safari Safari 浏览器同样也可以在浏览器权限设置开启与关闭 WebRTC。...讲者进一步列举了常用连接方法事件内容及其参数: 这些方法都可以点进去,查看当前参数返回成功与否,比如AddStream方法流id,CreateOffer方法是否调用成功等。...DataChannel API 介绍及使用 WebRTC DataChannel 在只希望使用 WebRTC 传输文件文本时,WebRTC 标准也支持一个 API 来通过 RTCPeerConnection

    2.5K20

    鹅厂原创 | React性能探索 --- 避免不必要渲染

    同时,这一功能已经内置于现代浏览器,所以它可以做到无须借助第三方软件插件便可以在开发网络传输高质量音视频流。...我们需要对对方支持音频视频编解码器等电脑软硬件信息有所了解 当我们互相拿到了对方地址电脑软硬件信息后,就可以通过RTCPeerConnection对象来建立连接了。...2.3 获取电脑软硬件信息 我们需要获取到对方所支持音频视频编解码器,他们使用哪种网络以及他们电脑可以处理多少数据,我们就需要一个有用户所有信息字符串名片来传送给其他用户,这里我们可以使用SDP(...这里我们使用两个连接对象都在同一个浏览器,直接浏览器传输即可,在真实环境,连接用户自己并不在同一个浏览器,这就需要一个websocket服务器,用于在浏览器连接双方。...window.RTCPeerConnection; } 2.可以通过配置自己STUN服务器地址,或者不写配置使用浏览器默认STUN服务器地址,来创建两个RTCPeerConnection对象来模拟连接

    44630

    WebRTC技术概览

    WebRTC(Web Real-Time Communication)是基于标准化技术行业性项目, 旨在将实时通信功能引入到所有浏览器,通过标准H5标签Javascript API使得这些功能为...,RFCs)推荐标准,在现实世界已经使用,简单说是制定IP层标准,比如TCP/IPv6/HTTP等。...月29日(13:00-17:00) 1、现实WebRTC 如何在现实网络中进行调试,使用WireShark、浏览器工具、第三方工具来进行调试,WebRTC自带调试工具使用方法 2、通信安全 WebRTC...)使用带宽信息 6)可信赖接洽信息(Contact information) Plan B                                           Unified Plan...: 音频视频录制 RTCPeerConnection: 用户之间音频视频流 RTCDataChannel: 用户之间数据通道 重要概念: mediasession mediastream track

    1.3K10

    【WebRTC】WebRTC学习总结

    ,建立浏览器之间点对点(Peer-to-Peer)连接,实现视频流)音频流或者其他任意数据传输。...WebRTC包含这些标准使用户在无需安装任何插件或者第三方软件情况下,创建点对点(Peer-to-Peer)数据分享电话会议成为可能。...,sdpRTCPeerConnection对象方法创建,我们目前不需要知道该对象具体内容,使用黑盒传输即可 ICE(Interactive Connectivity Establishment,交互式连接建立技术...数据通道 WebRTC擅长进行数据传输,不仅仅是音频视频流,还包括我们希望任何数据类型,相比于复杂数据交换过程,创建一个数据通道这个主要功能已经在RTCDataConnection对象实现了:...",dataChannelOptions); WebRTC会处理好所有的事情,包括浏览器内部层。

    3.7K10

    Azure通信服务(ACS)如何实现WebRTC?

    在文档SDK没有提及记录广播功能,也没有与Azure流处理功能(文本到语音视觉API)进行任何集成。 发信号 信令基于HTTP请求。...就我而言(在欧洲),我在考试期间被分配到都柏林一个(SFU)。 SDP媒体 对等连接计划 客户端SDK使用单个WebRTC PeerConnection来发送接收多个流。...这是最高效,最现代机制,但并非所有平台都使用。不利一面是,它使用原始Plan-B语义而不是新Unified Plan语义。考虑到Plan-B存在,这并不是非典型。...(直到)今天,许多最大多方应用程序仍在使用Plan-B。 交互式连接建立(ICE) 在媒体连接方面,ACS同时使用STUNTURN TCP服务器。...ICE UDP候选对象,但也使用端口3478ICE TCP候选对象

    3.3K20

    WebRTC学习笔记——建立连接

    同时,这一功能已经内置于现代浏览器,所以它可以做到无须借助第三方软件插件便可以在开发网络传输高质量音视频流。...2.我们需要对对方支持音频视频编解码器等电脑软硬件信息有所了解 当我们互相拿到了对方地址电脑软硬件信息后,就可以通过RTCPeerConnection对象来建立连接了: ?...,我们就需要一个有用户所有信息字符串名片来传送给其他用户,这里我们可以使用SDP(会话描述协议) SDP涵盖了一个指定用户描述、时间配置对媒体限制,类似于你电脑名片,其他用户可以通过它来试着联系到你...这里我们使用两个连接对象都在同一个浏览器,直接浏览器传输即可,在真实环境,连接用户自己并不在同一个浏览器,这就需要一个websocket服务器,用于在浏览器连接双方。...window.RTCPeerConnection; } 2.可以通过配置自己STUN服务器地址,或者不写配置使用浏览器默认STUN服务器地址,来创建两个RTCPeerConnection对象来模拟连接

    83210

    WebRTC学习笔记——建立连接

    同时,这一功能已经内置于现代浏览器,所以它可以做到无须借助第三方软件插件便可以在开发网络传输高质量音视频流。...2.我们需要对对方支持音频视频编解码器等电脑软硬件信息有所了解 当我们互相拿到了对方地址电脑软硬件信息后,就可以通过RTCPeerConnection对象来建立连接了: ?...,我们就需要一个有用户所有信息字符串名片来传送给其他用户,这里我们可以使用SDP(会话描述协议) SDP涵盖了一个指定用户描述、时间配置对媒体限制,类似于你电脑名片,其他用户可以通过它来试着联系到你...这里我们使用两个连接对象都在同一个浏览器,直接浏览器传输即可,在真实环境,连接用户自己并不在同一个浏览器,这就需要一个websocket服务器,用于在浏览器连接双方。...window.RTCPeerConnection; } 2.可以通过配置自己STUN服务器地址,或者不写配置使用浏览器默认STUN服务器地址,来创建两个RTCPeerConnection对象来模拟连接

    2K80
    领券