WebRTC 的媒體部分介紹瞭如何存取具有擷取功能的硬體 影片和音訊 (例如攝影機和麥克風),以及媒體串流方式 這些研究有助於我們找出 能引導後續作業的標準並介紹多媒體媒體,也是應用程式執行螢幕的方式 擷取。
媒體裝置
瀏覽器支援的所有攝影機和麥克風都能存取
透過 navigator.mediaDevices 物件管理應用程式可以擷取
目前的連線裝置清單,也會監聽變更,因為許多
攝影機和微型音訊會透過 USB 連接,然後可以連接
但在應用程式生命週期內會中斷連結由於媒體狀態
裝置可能會隨時變更,不過建議您為應用程式註冊
才能妥善處理變更。
限制
存取媒體裝置時,建議您根據 雖然您可以開啟預設攝影機 都有簡單的限制 可能會放送距離更遠的媒體串流 來選擇我們最需要的功能
特定限制是在 MediaTrackConstraint 物件中定義,
另一個用途是影片這個物件中的屬性屬於以下類型:
ConstraintLong、ConstraintBoolean、ConstraintDouble或
ConstraintDOMString。這可以是特定值 (例如數字、
布林值或字串)、範圍 (LongRange 或 DoubleRange,最小值為
最大值),或是具有 ideal 或 exact 定義的物件。換
特定的值,瀏覽器會嘗試盡可能選擇最接近該值的項目。
指定範圍時,系統會使用該範圍內的最佳值。exact為
只有與該限製完全相符的媒體串流才會
。
靠近
// Camera with a resolution as close to 640x480 as possible
{
"video": {
"width": 640,
"height": 480
}
}
範圍
// Camera with a resolution in the range 640x480 to 1024x768
{
"video": {
"width": {
"min": 640,
"max": 1024
},
"height": {
"min": 480,
"max": 768
}
}
}
完全
// Camera with the exact resolution of 1024x768
{
"video": {
"width": {
"exact": 1024
},
"height": {
"exact": 768
}
}
}
如要判斷媒體串流追蹤的實際設定,
我們可以呼叫 MediaStreamTrack.getSettings(),以傳回
目前套用的MediaTrackSettings。
你也可以在我們的媒體裝置上更新音軌的限制
在軌道上呼叫 applyConstraints()。這樣一來
應用程式才能重新設定媒體裝置,而不必先關閉
現有直播影片。
多媒體
需要具備執行螢幕畫面擷取和錄製功能的應用程式
都必須使用 Display Media API。getDisplayMedia() 函式 (屬於
的 navigator.mediaDevices 與 getUserMedia() 類似,會用於
目的在於開啟螢幕的內容 (或其中一部分,例如
視窗)。傳回的 MediaStream 和使用
getUserMedia()。
getDisplayMedia() 的限制與一般使用的限制條件不同
影片、影片或音訊輸入
{
video: {
cursor: 'always' | 'motion' | 'never',
displaySurface: 'application' | 'browser' | 'monitor' | 'window'
}
}
上方的程式碼片段顯示螢幕錄影的特殊限制 能夠正常運作。請注意,並非所有顯示螢幕的瀏覽器都支援這些功能 媒體支援
串流和追蹤
MediaStream 代表由軌道組成的媒體內容串流
(MediaStreamTrack)。您可以從以下位置擷取所有足跡:
呼叫 MediaStream.getTracks() 即可 MediaStream,系統會傳回
MediaStreamTrack 物件。
MediaStreamTrack
MediaStreamTrack 的 kind 屬性可以是 audio 或 video。
用於表示其所代表的媒體類型可以切換開關,將每首曲目靜音
其 enabled 屬性。音軌的布林值屬性 remote 會指出
如果資料來源為 RTCPeerConnection 且來自遠端對等節點。