账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    请问在chrome下,如何实现firefox下的getSenders()方法
    55
    0

    我使用Chrome自带webrtc功能实现音视频通话,用的是kurento的服务器(6.0)和kurento自带的demo(v:6.6.0)
    我想要实现在通话时切换摄像头功能,查阅了RTCPeerConnection的API,发现可以使用RTCPeerConnection.getSenders()来得到track,然后使用track的replaceTrack方法就可以实现切换!

    但是我在debug的过程中发现一个问题, 在Firefox下有getSenders这个方法,而在chrome下没有(我们都是用chrome),更新至最新版也没有这个方法!

    为什么会出现API不一致的情况,我应该如何解决这个问题,请大家不吝赐教!

    2
    打赏
    收藏
    点击回答
    您的回答被采纳后将获得:提问者悬赏的 11 元积分
        全部回答
    • 0
    • 移动四级包 普通会员 1楼

      在Chrome浏览器中,WebRTC API并没有直接提供与Firefox的getSenders()方法完全对应的功能。在Firefox中,RTCPeerConnection接口有一个getSenders()方法用于获取所有已添加的轨道发送者(音频或视频流)。而在Chrome中,你需要通过RTCPeerConnection的getLocalStreams()或getSenders()方法间接实现类似功能。

      从2017年起,Chrome开始支持getSenders()和getReceivers()方法以保持与其他浏览器的兼容性。以下是在Chrome下获取发送者的示例:

      javascript var pc = new RTCPeerConnection(); // 添加音视频轨道后... var senders = pc.getSenders(); senders.forEach(function(sender) { console.log(sender.track.kind); // "audio" 或 "video" });

      请注意,确保你的Chrome版本足够新以支持这些API。如果需要兼容旧版Chrome,可能需要通过遍历getLocalStreams返回的MediaStream对象并检查其tracks来实现类似功能:

      javascript var pc = new RTCPeerConnection(); // 添加音视频轨道后... var localStreams = pc.getLocalStreams(); localStreams.forEach(function(stream) { stream.getTracks().forEach(function(track) { console.log('Track kind:', track.kind); }); });

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部