Medya yakalama ve kısıtlamalar

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.