Opentok JavaScript WebRTC ライブラリを使用して、1 対 1 のビデオ チャット (ピア ツー ピア) をホストしています。同僚のビデオを見て、オーディオを完璧に聞くことができます。
私の希望は、他のチャット パーティー (リモート) の音声/ビデオを記録することです。この目的のために、私はRecordRTCを使用しています。他のチャット参加者のビデオを記録することはできました (ビデオは HTML ビデオ要素に出力されます) が、これまでのところ、音声を記録することはできませんでした (デッド サイレンス .wav ファイルが得られる限りです)。Chrome Canary (30.0.1554.0) を使用します。これは私の方法です:
var clientVideo = $('#peerdiv video')[0];//peer's video (html element)
var serverVideo = $('#myselfdiv video')[0];//my video (html element)
var context = new webkitAudioContext();
var clientStream = context.createMediaStreamSource(clientVideo.webRTCStream);
var serverStream = context.createMediaStreamSource(serverVideo.webRTCStream);
webRTCStream は、opentok js ライブラリのソースを変更して HTMLVideoElement オブジェクトに割り当てたカスタム プロパティです。それぞれの < video > 要素にリンクされた MediaStream オブジェクトが含まれています。
var recorder = RecordRTC({
video: clientVideo,
stream: clientStream
});
recorder.recordAudio();
recorder.recordVideo();
ビデオが記録されます。オーディオファイルも作成され、ビデオの長さに近い長さですが、完全に無音です (そして、録音中に反対側で多くのノイズが発生しました)。
ウェブカメラのビデオ ストリーム (およびオーディオ) を表示するビデオ要素でこれをテストしたところ、動作しました。オーディオとビデオの両方が記録されました。
...
var recorder = RecordRTC({
video: serverVideo,
stream: serverStream
});
...
離れた場所から発信されたストリームに何か特別なことはありますか? この問題に関するガイダンスは非常に役立ちます。