2017-06-28 92 views
2

一切正常工作正常(createOffer,createAnswer,iceCandidates,...),但随后传入的remoteStream有2个音轨,audioTrack正在工作,videoTrack这与readyState不兼容:“静音”。WebRTC远程流视频readyState:音频工作时“静音”

如果我在pageload上做了createOffer,然后用start call再次用同样的peerConnection做crreateOffer,同样视频显示正确(但是我会在firefox中得到“无法在state-offer-offer中创建offer” ?

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

+1

请加入最小代码样本,并再次改写这个问题。真的很难理解你在问什么或者说什么。 – karthick

回答

0

你能在双方的本地视频
? - >在PC只有一个浏览器就可以访问到相机任何时候铬或火狐)
- >尝试调用两台不同的机器或铬铬合金或火灾狐狸到Firefox浏览器。

“无法在状态创建提供具有本地要约”
这意味着你已经创建了一个报价,并试图不设置远程答案重新创建。

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

  • 收到流gum回调后,再添加peerConnection。
  • 在创建答案之前,在添加流之后创建报价,以便在设置了远程报价的情况下进行回答。
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; 
}