WebRTC'nin medya bölümü, şu çekim yapabilen donanıma nasıl erişileceğini kapsar: (ör. kameralar ve mikrofonlar) ve medya akışlarının iş yeri. Ayrıca, uygulamaların görüntülü medya kampanyalarını tanımlar.
Medya cihazları
Tarayıcının desteklediği tüm kamera ve mikrofonlara,
navigator.mediaDevices
nesnesi üzerinden yönetilir. Uygulamalar alabilir
mevcut bağlı cihaz listesini kontrol edebilir ve ayrıca,
kameralar ve mikroponlar USB ile bağlanır ve bağlı olarak
bağlantısı kesilebilir. Medyanın, içinde bulunduğumuz
değişebiliyorsa, uygulamanın kullanılabilmesi için
ve cihaz değişikliklerinin doğru bir şekilde
uygulanmasını sağlar.
Sınırlamalar
Medya cihazlarına erişirken, mümkün olduğunca ayrıntılı benimsetme sürecidir. Varsayılan kamerayı açıp kapatmak mümkün olsa da küçük bir kısıtlamayla uzaktaki bir medya akışı sağlayabilir, seçmemiz gerekir.
Belirli kısıtlamalar, MediaTrackConstraint
nesnesinde tanımlanır ve
ses, biri de video. Bu nesnedeki özellikler şu türde:
ConstraintLong
, ConstraintBoolean
, ConstraintDouble
veya
ConstraintDOMString
. Bunlar belirli bir değer (ör. sayı,
boole veya dize), bir aralık (minimum ve minimum ile LongRange
veya DoubleRange
)
maksimum değer) ya da ideal
ya da exact
tanımına sahip bir nesne olarak kabul edilir. Örneğin,
tarayıcı mümkün olduğunca yakın bir değer seçmeye çalışır.
Bir aralık için söz konusu aralıktaki en iyi değer kullanılır. exact
şu olduğunda:
belirtildiğinde, yalnızca bu kısıtlamayla tam olarak eşleşen medya akışları
geri döndü.
Yakın
// Camera with a resolution as close to 640x480 as possible
{
"video": {
"width": 640,
"height": 480
}
}
Aralık
// Camera with a resolution in the range 640x480 to 1024x768
{
"video": {
"width": {
"min": 640,
"max": 1024
},
"height": {
"min": 480,
"max": 768
}
}
}
Tam
// Camera with the exact resolution of 1024x768
{
"video": {
"width": {
"exact": 1024
},
"height": {
"exact": 768
}
}
}
Bir medya akışındaki belirli bir parçanın gerçek yapılandırmasını belirlemek için
MediaStreamTrack.getSettings()
diyebiliriz. Örneğin,
Şu anda MediaTrackSettings
uygulandı.
Ayrıca, parçanın kısıtlamalarını, tam olarak veya bitmek üzere
applyConstraints()
hattını arayarak başlattık. Bu şekilde
uygulamanın yeniden kullanılabilmesi için bir ortam cihazını
Mevcut akış.
Görüntülü reklam
Ekran görüntüsü yakalama ve kaydetme işlemlerini yapabilmek isteyen bir uygulama
Display Media API'yi kullanmalıdır. Parçalı işlem olan getDisplayMedia()
/navigator.mediaDevices
, getUserMedia()
ile benzerdir ve
ekranın içeriğini (veya ekranın bir kısmını) açma amacı
penceresi) ziyaret edin. Döndürülen MediaStream
,
getUserMedia()
.
getDisplayMedia()
için kısıtlamalar, normal için kullanılanlardan farklı
Video veya ses girişi.
{
video: {
cursor: 'always' | 'motion' | 'never',
displaySurface: 'application' | 'browser' | 'monitor' | 'window'
}
}
Yukarıdaki kod snippet'i, ekran kaydına ilişkin özel kısıtlamaların nasıl olduğunu gösterir. çalışır. Bunların görüntülü reklam gösteren tüm tarayıcılarda desteklenmeyebileceğini medya desteği.
Akışlar ve kanallar
MediaStream
, parçalardan oluşan medya içeriği akışını temsil eder
(MediaStreamTrack
) ses ve video. Tüm parçaları şuradan alabilirsiniz:
MediaStream.getTracks()
komutunu çağırarak MediaStream
. Bu değer, bir dizi döndürür.
MediaStreamTrack
nesne.
MediaStreamTrack
MediaStreamTrack
, audio
veya video
olan bir kind
özelliğine sahiptir.
temsil ediyor. Parçalar, açma/kapatma düğmesi kullanılarak kapatılabilir
enabled
mülkü Bir parçanın Boole özelliği remote
RTCPeerConnection
tarafından ve uzaktaki bir benzerden geliyorsa.