MediaStream已經轉變爲一個簡單的軌道容器,代表視頻和音頻在一起(一個相當常見的情況)。
它並不「結合」任何東西,它只是一個便利的東西,它們需要在時間上同步播放。沒有人喜歡嘴脣與口語不同步。
它甚至不是真正在技術上需要的,但它是一個有用的語義中的API:
- 掌握攝像頭和麥克風(通常是視頻和音頻)從硬件輸出,並且
- 連接它(輸出)到sinc,就像html
video
標記(它接受視頻和音頻)。
- 在RTCPeerConnection的遠端重組屬於一起的音頻和視頻,這意味着它們通常應該彼此同步播放(瀏覽器有更多關於遠端預期的信息,例如,如果數據包來自一個軌道丟失,但不是另一個)。
這是否是一個有用的抽象可能取決於您感興趣的詳細程度。例如,仍處於工作草案階段的RTCPeerConnection API在過去一年中已從流作爲輸入並輸出到直接處理跟蹤,因爲工作組認爲在傳輸時細節更重要(例如跟蹤帶寬使用等)
無論如何,從一個到另一個將是微不足道的:
var tracks = stream.getTracks();
console.log(tracks.map(track => track.kind)); // audio,video
video.srcObject = new MediaStream(tracks);
一旦瀏覽器實現了M ediaStream的構造函數(定義爲Firefox 44)。
來源
2015-10-10 15:13:23
jib