2017-06-28 17 views
2

すべてが正常に動作しますが(createOffer、createAnswer、iceCandidatesなど)、着信するremoteStreamには2つのトラック、audioTrackが動作し、videoTrackこれはreadyStateで動作しません: "ミュート"。WebRTCリモートストリームビデオreadyState:オーディオが動作している間に「ミュート」

pageloadでcreateOfferを実行してから、同じpeerConnectionで再びcrreateOfferを実行すると、ビデオが正しく表示されます(ただし、「has-local-offerでオファーを作成できません。 。

問題何ができるか任意のアイデア(コードはここに示すために、非常に複雑すぎる)

+1

最小のコードサンプルを追加して、再度質問を言い換えてください。あなたが聞いているか、言っていることを理解するのは本当に難しいです。 – karthick

答えて

0

できますが、両側のローカルビデオ
- ??> PCで唯一のブラウザがアクセスを取得しますカメラにいつでもchrome/firefoxのいずれか)
- > 2つの異なるマシン間で呼び出し、またはchrome-to-chromeまたはfire fox-to-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; 
} 
関連する問題