getUserMedia()
または WebRTC を使用している場合は、コードの調整が必要になることがあります
。
MediaStream API は、 同期されたメディア ストリームです。たとえば、カメラから取得したストリームと マイク入力で動画と音声のトラックが同期されています。各トラックは で表され、 MediaStreamTrack。 (<track> 要素と混同しないでください)。
Chrome 45 では、次の 3 つの MediaStream
のサポートが終了します。
MediaStream.ended
MediaStream.label
MediaStream.stop()
並行して、次の 2 つの機能を追加します。
MediaStream.active
MediaStreamTrack.stop()
これらには、次の変更が必要です。
MediaStream.active
を使用して、MediaStream
がMediaStream.ended
ではなくストリーミングかどうかを確認します。- ストリーミングを停止するには、
MediaStream.stop()
ではなくMediaStreamTrack.stop()
を使用します。 MediaStream
の一意の識別子が必要な場合は、MediaStream.label
ではなくMediaStream.id
を使用します。MediaStreamTrack.label
は、人が読める形式のストリームのソースデバイス名です。次に例を示します。FaceTime HD カメラ(内蔵)(05ac:8510)
これらは実際の動作で確認できます。simpl.info/gum を開きます。
Chrome(カメラを搭載したデバイス上)に移動し、Chrome DevTools コンソールを表示します。「
getUserMedia()
コールバックに渡された MediaStream オブジェクト stream
グローバル スコープなので、コンソールから確認できます。発信
stream.getTracks()[0]
して、このストリームのMediaStreamTrack
を表示します。
Stop()、終了、アクティブ
Media Capture and Streams の W3C ワーキング グループが MediaStream
に新しいトラックを追加したときにどうなるかという問題について検討した際、
空の MediaStream
が終了したかどうかがわかります。
MediaStream
に ended
を実装する理にかなった方法がありません(「再開されない」など)。HTML5 の他の部分では「終了」した「このトレーニングは終了し、
再開しない] を選択します。'有効'そのような意味はありません。非アクティブなストリームが
再びアクティブになります。たとえば、新しいトラックが追加された場合などです。ワーキング グループは、混乱を招く属性と機能を維持するのではなく、
削除します。
これは「MediaStream.active」の使用例です。ステータスを ストリーム:
var gumStream;
navigator.getUserMedia({audio: false, video: true},
function(stream) {
gumStream = stream;
// ...
},
function(error) {
console.log('getUserMedia() error', error);
});
// …
if (gumStream.active) {
// do something with the stream
}
MediaStream
から stop()
を削除しても、実際の機能は削除されませんでした。
ソースデバイスの接続解除などのプロセスは、
それでも MediaStreamTrack
。代わりに MediaStreamTrack
で stop()
を使用してください。
navigator.getUserMedia({audio: false, video: true},
function(stream) {
// can also use getAudioTracks() or getVideoTracks()
var track = stream.getTracks()[0]; // if only one media track
// ...
track.stop();
},
function(error){
console.log('getUserMedia() error', error);
});
ラベル
この物件の用途をだれもわからなかったことがわかりました。
仕様の最初のバージョンに MediaStream.label
が加わっていましたが、誰も何もわかりませんでした
何のためかlabel
を確認しますまた、ライブ配信中に label
がどうなったかも不明確でした。
RTCPeerConnection
経由で送信されました。
W3C ワーキング グループから問い合わせがあったが、誰も望んでいないため、削除しました。
繰り返しになりますが、MediaStream.id
は各オブジェクトの一意の識別子を
MediaStream
と MediaStreamTrack.label
はソース名です。
カメラやマイクの種類など
MediaStream
と MediaStreamTrack
に関する詳細が確認できます
Mozilla Developer Network の
HTML5 Rocks は、getUserMedia()
音声のキャプチャと動画。
Chrome の変更に関するフィードバックをぜひお寄せください。非推奨のバグ(こちらとこちら)を追跡し、実装の意図で詳細な議論と詳細情報を確認できます。