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
且來自遠端對等節點。