問題タブ [rtcpeerconnection]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
154 参照

javascript - RTCPeerConnection IOS 12.2 から Android 7.X

RTCPeerConnection 通信を構築していますが、iOS 12.2 (Ipad でのみテスト済み) から Android (7.11 でのみテスト済み) への呼び出しでストリームが交換されないという 1 つの問題が見つかりました。

iOS から Chrome (デスクトップ)、iOS から iOS、iOS から Chrome デスクトップ、Android から iOS など、他のピアも問題ありません。

制約の使用オーディオはすべてのピアでのみ正常に機能しますが、ビデオを追加すると問題が発生し、iOS 12.2 => Android から接続されます。(iOSがオファーします)

コーデックの問題かもしれませんが、Android から iOS へのビデオ接続は問題なく確立されているので、わかりません。

ストリームではなくトラックを使用しています。

他の誰かがこれで問題を経験し、ヒントがありますか?

0 投票する
2 に答える
3967 参照

javascript - 引数が null の addIceCandidate はエラーになります

私は WebRTC を学習しようとしています。同じページで 2 つの RTCPeerConnection を接続することを達成しました。現在、それらを 2 つの別々のページに分割して接続しようとしています。ただし、コードを作成してオファーと回答を交換した後、initiator.html の addIceCandidate() が常にこれを null 引数でスローすることに気付きました。

Error at addIceCandidate from queue: TypeError: Failed to execute 'addIceCandidate' on 'RTCPeerConnection': Candidate missing values for both sdpMid and sdpMLineIndex at processCandidateQueue (initiator.html:69)

少し読んだ後、ICE候補の収集が終了したことを示すためにnullが使用され、ここに例があることを学びました:https://webrtc.github.io/samples/src/content/peerconnection/pc1/ また、収集が終了したときに引数nullで「addIceCandidate」を実行します. しかし、現時点でエラーが表示される理由がわかりません。

私が試したこと:

  1. 候補が null の場合、addIceCandidate をスキップするようなチェックを作成しようとしました。
  2. 関数呼び出し間の遅延を減らすために、すべての接続ロジックをより少ないボタンに配置します
  3. 各ページにadapter-latest.jsを追加

結果:

  1. イニシエーターの接続状態は「失敗」、レシーバーの接続状態は「新規」です。レシーバー ページへのストリーミングに失敗しました。
  2. 同じエラーがスローされました
  3. エラーはなくなりましたが、接続はまだ失敗しています

開始者.html

receiver.html

common.js

common.css