使用 getUserMedia()
或 WebRTC 時,可能需要調整程式碼
。
MediaStream API 代表 的同步串流。例如從相機拍攝的串流 麥克風輸入有同步視訊和音軌。每首曲目 代表的是 MediaStreamTrack。 (別和 <track> 元素搞混!)
Chrome 45 有三種 MediaStream
淘汰項目:
MediaStream.ended
MediaStream.label
MediaStream.stop()
其中並有兩個新增項目:
MediaStream.active
MediaStreamTrack.stop()
這些變更需要經過下列調整:
- 使用
MediaStream.active
檢查MediaStream
是否為串流,而非MediaStream.ended
。 - 使用
MediaStreamTrack.stop()
即可停止直播,而不是MediaStream.stop()
。 - 如果您需要
MediaStream
的專屬 ID,請使用MediaStream.id
而非MediaStream.label
。MediaStreamTrack.label
可為串流的來源裝置提供使用者可理解的名稱,例如。FaceTime HD 高畫質相機 (內建) (05ac:8510)。
您可以在實際操作中看到這些範例:在 simpl.info/gum 中開啟
Chrome (使用配備攝影機的裝置),以及 Chrome 開發人員工具控制台。
傳遞至 getUserMedia()
回呼的 MediaStream 物件 stream
仍在全域範圍內,因此您可以透過控制台檢查。致電
stream.getTracks()[0]
即可查看這個串流的「MediaStreamTrack
」。
Stop() (已結束且有效)
媒體擷取和串流 W3C 工作小組在檢查在 MediaStream
中新增曲目時會發生的問題。
並判斷是否結束空白 MediaStream
時,他們察覺到
在 MediaStream
上實作 ended
的方式不夠合理 (因為「永遠不會重新開始」)。HTML5 的其他部分「ended」表示「這已結束,
永不恢復'。「有效」而沒有任何影響:閒置的串流作業
(例如新增曲目時),就會再次生效。該工作小組並未保留令人困惑的屬性和功能,
移除。
這裡舉例說明「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
}
將 stop()
從 MediaStream
中移除,並不會移除任何實際功能:
卸離來源裝置的處理程序等
仍是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
會提供專屬 ID,
MediaStream
和 MediaStreamTrack.label
提供來源名稱
像是攝影機或麥克風類型
現在可以查看更多關於「MediaStream
」和「MediaStreamTrack
」的資訊
來自 Mozilla Developer Network
HTML5 Rocks 提供了絕佳的 getUserMedia()
簡介
擷取音訊,影片。
無論如何,我們都感謝您針對 Chrome 的異動提供寶貴意見。您可以追蹤這些淘汰項目的錯誤 (這個頁面和這個頁面),並參閱「導入意圖」一文,進一步瞭解相關資訊和細節。