簡體   English   中英

通過 forEach(function(track) {track.stop();} 關閉 stream 后重啟

[英]restart stream after closing it by forEach(function(track) {track.stop();}

myVideoStream.getTracks().forEach(function(track) {
  track.stop();
}

如何在關閉所有軌道后重新啟動 stream 軌道。 或在視頻流應用程序中打開和關閉相機的任何替代方法(如在 google meet 中打開關閉視頻按鈕)

MDN文檔說明了以下關於停止軌道的內容。

調用 stop() 告訴用戶代理,MediaStreamTrack 不再需要軌道的源——無論該源是什么,包括文件、網絡流或本地攝像頭或麥克風。 由於多個軌道可能使用相同的源(例如,如果兩個選項卡正在使用設備的麥克風),源本身不一定會立即停止。 相反,它與軌道解除關聯並且軌道對象停止。 一旦沒有媒體軌道正在使用該源,該源實際上可能會完全停止。

這意味着您必須通過創建一個新流來重新啟動流,因為媒體已完全停止運行。

我有同樣的問題,我通過使用track.enable = false靜音,並使用track.enable = true重新激活解決了它,只需在靜音和使用此軌道之前將原始軌道保存在自變量中變量獨立於重新激活,記住重新激活時必須使用track.enable = true

希望這可以幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM