Google is committed to advancing racial equity for Black communities. See how.
Bu sayfa, Cloud Translation API ile çevrilmiştir.
Switch to English

Medya yakalama ve kısıtlamalar

WebRTC'nin medya kısmı, kamera ve mikrofon gibi video ve ses yakalayabilen donanıma nasıl erişilebileceğini ve medya akışlarının nasıl çalıştığını kapsar. Ayrıca, bir uygulamanın ekran yakalamasını nasıl yapabileceği görüntüleme ortamlarını da kapsar.

Medya aygıtları

Tarayıcı tarafından desteklenen tüm kameralara ve mikrofonlara navigator.mediaDevices nesnesi üzerinden erişilir ve yönetilir. Uygulamalar, bağlı cihazların geçerli listesini alabilir ve değişiklikleri dinleyebilir, çünkü birçok kamera ve mikro bölge USB yoluyla bağlanır ve uygulamanın yaşam döngüsü boyunca bağlanabilir ve bağlantısı kesilebilir. Bir ortam aygıtının durumu herhangi bir zamanda değişebileceğinden, uygulamaların değişiklikleri düzgün bir şekilde işlemek için aygıt değişikliklerine kaydolması önerilir.

Kısıtlamalar

Medya aygıtlarına erişirken, olabildiğince ayrıntılı kısıtlamalar sağlamak iyi bir uygulamadır. Varsayılan kamerayı ve mikrofonu basit bir kısıtlamayla açmak mümkün olsa da, uygulama için en uygun olandan uzak bir medya akışı sağlayabilir.

Belirli kısıtlamalar, biri ses, diğeri video için olmak üzere MediaTrackConstraint nesnesinde tanımlanır. Bu nesnedeki öznitelikler ConstraintLong , ConstraintBoolean , ConstraintDouble veya ConstraintDOMString . Bunlar ya belirli bir değer (örneğin bir sayı, boole veya dize), bir aralık (minimum ve maksimum değere sahip LongRange veya DoubleRange ) ya da ideal veya exact tanımlamalı bir nesne olabilir. Belirli bir değer için tarayıcı mümkün olduğunca yakın bir şey seçmeye çalışır. Bir aralık için, bu aralıktaki en iyi değer kullanılır. exact olarak belirtildiğinde, yalnızca bu kısıtlamayla tam olarak eşleşen medya akışları döndürülür.

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
        }
    }
}
 

kesin

 // Camera with the exact resolution of 1024x768
{
    "video": {
        "width": {
            "exact": 1024
        },
        "height": {
            "exact": 768
        }
    }
}
 

Bir medya akışının belirli bir parçasının sahip olduğu gerçek yapılandırmayı belirlemek için, MediaTrackSettings uygulanan MediaTrackSettings döndüren MediaStreamTrack.getSettings() MediaTrackSettings .

Ayrıca, izdeki kısıtlamaları, yolda applyConstraints() çağırarak bir medya cihazından güncellemek de mümkündür. Bu, bir uygulamanın önce mevcut akışı kapatmadan bir medya cihazını yeniden yapılandırmasına olanak tanır.

Görüntü ortamı

Ekran görüntüsü alma ve kaydetme işlemini gerçekleştirmek isteyen bir uygulama, Display Media API'sını kullanmalıdır. İşlev getDisplayMedia() bir parçası olan ( navigator.mediaDevices benzer getUserMedia() ) ve ekran (veya bu tür bir pencere olarak da bir kısmı, bir içerik açılması amacıyla kullanılır. Döndürülen MediaStream işleri getUserMedia() aynıdır.

getDisplayMedia() için kısıtlamalar, normal video veya ses girişi için kullanılanlardan farklıdır.

 {
    video: {
        cursor: 'always' | 'motion' | 'never',
        displaySurface: 'application' | 'browser' | 'monitor' | 'window'
    }
}
 

Yukarıdaki kod parçacığı, ekran kaydı için özel kısıtlamaların nasıl çalıştığını gösterir. Bunların, ekran medyası desteği olan tüm tarayıcılar tarafından desteklenmeyebileceğini unutmayın.

Akışlar ve parçalar

MediaStream , ses ve video parçalarından ( MediaStreamTrack ) oluşan bir medya içeriği akışını temsil eder. MediaStreamTrack nesnelerinin bir dizisini döndüren MediaStream.getTracks() çağırarak tüm parçaları MediaStream alabilirsiniz.

MediaStreamTrack

MediaStreamTrack , temsil ettiği ortam türünü gösteren audio veya video kind bir kind özelliğine sahiptir. enabled özellik değiştirilerek her bir parçanın sesi kapatılabilir. Bir parça, bir RTCPeerConnection tarafından kaynaklanıp kaynaklanmadığını ve uzak bir eşten gelip gelmediğini gösteren bir Boolean özellik remote sahiptir.