WebRTC远程流视频readyState:"静音"音频工作时

时间:2017-06-28 23:30:09

标签: javascript webrtc peer-connection

一切正常(createOffer,createAnswer,iceCandidates,...),但是传入的remoteStream有2个轨道,正在运行的audioTrack和不使用readyState的videoTrack:"静音&#34 ;

如果我在pageload上执行createOffer然后使用相同的peerConnection再次使用start call do crreateOffer,那么视频也会正确显示(但是我会在firefox中获得"无法在州内创建提供 - 本地要约"

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

2 个答案:

答案 0 :(得分:0)

你们双方的本地视频吗?    - >在一台电脑中,只有一个浏览器可以随时访问相机(chrome / firefox)    - >尝试在两台不同的机器或chrome-to-chrome或firefox-to-firefox之间进行通话。

“无法在州内提供优惠 - 本地优惠”
这意味着您已经创建了一个优惠并尝试重新创建,而无需设置远程答案。

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

  • 收到流gUM回调后,再添加peerConnection。
  • 添加流后,创建优惠,如果在创建答案之前也设置了答案集远程优惠。

答案 1 :(得分:0)

我在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;
}