【问题标题】:WebRTC remote-stream video readyState : "muted" while audio is workingWebRTC 远程流视频 readyState :音频工作时“静音”
【发布时间】:2017-06-28 23:30:08
【问题描述】:

一切正常(createOffer、createAnswer、iceCandidates、...),但是传入的 remoteStream 有 2 个轨道,正在工作的 audioTrack 和不使用 readyState 的 videoTrack:“静音”。

如果我在页面加载时执行 createOffer,然后使用相同的 peerConnection 再次启动调用 do crreateOffer,则视频也会正确显示(但随后我会在 firefox 中看到“无法在状态 has-local-offer 中创建报价”。

任何想法可能是什么问题? (代码太复杂,这里不展示)

【问题讨论】:

  • 请添加最少的代码示例并重新表述问题。真的很难理解你在问什么或在说什么。

标签: javascript webrtc peer-connection


【解决方案1】:

可以两边本地视频吗?
-> 在 PC 中,只有一个浏览器可以随时访问相机,无论是 chrome/firefox)
-> 尝试在两台不同的机器或 chrome-to-chrome 或 firefox-to-firefox 之间调用。

“无法在 has-local-offer 州创建优惠”
这意味着您已经创建了一个报价,并在没有设置远程应答的情况下尝试再次创建。

再次调用 createOffer 不是一个好主意。确保以以下方式(同步)创建报价。

  • 收到流gUM回调后,添加peerConnection。
  • 添加流后创建报价,如果答案集远程报价也在创建答案之前。

【讨论】:

    【解决方案2】:

    我在 iOS 应用上准备 MediaStream 时遇到了这个问题。事实证明我没有通过正确的RTCMediaConstraints。

    切换使用[RTCMediaConstraints defaultConstraints]后问题解决。

    例如:

    - (RTCVideoTrack *)createLocalVideoTrack {
        RTCVideoTrack* localVideoTrack = nil;
    
        RTCMediaConstraints *mediaConstraints = [RTCMediaConstraints defaultConstraints];
        RTCAVFoundationVideoSource *source =
        [[self peerConnectionFactory] avFoundationVideoSourceWithConstraints:mediaConstraints];
        localVideoTrack =
        [[self peerConnectionFactory] videoTrackWithSource:source
                               trackId:kARDVideoTrackId];
        return localVideoTrack;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-08
      • 1970-01-01
      • 1970-01-01
      • 2018-10-13
      • 1970-01-01
      • 2016-03-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多