getUserMedia()
veya WebRTC ile çalışıyorsanız kodunuzu ayarlamanız gerekebilir
.
MediaStream API, şunları temsil eder: senkronize edilir. Örneğin, kameradan çekilmiş ve Mikrofon girişi senkronize video ve ses parçalarına sahip. Her parça bir MediaStreamTrack gidin. (<track> öğesiyle karıştırılmamalıdır!)
Chrome 45'te MediaStream
desteğinin sonlandırılmasıyla ilgili üç değişiklik yapıldı:
MediaStream.ended
MediaStream.label
MediaStream.stop()
Buna paralel olarak iki ekleme yapılabilir:
MediaStream.active
MediaStreamTrack.stop()
Bu durumlar için aşağıdaki değişikliklerin yapılması gerekir:
MediaStream
yayını olup olmadığını kontrol etmek içinMediaStream.ended
yerineMediaStream.active
kullanın.- Akışı durdurmak için
MediaStream.stop()
yerineMediaStreamTrack.stop()
kullanın. MediaStream
için benzersiz bir tanımlayıcıya ihtiyacınız varsaMediaStream.label
yerineMediaStream.id
kullanın.MediaStreamTrack.label
, akış için kaynak cihaz için kullanıcılar tarafından okunabilen bir ad sağlar (ör. FaceTime HD Kamera (Yerleşik) (05ac:8510).
Bu öğelerin nasıl kullanıldığını görebilirsiniz: Şu sayfada simpl.info/gum'u açın:
Chrome'a (kamera bulunan bir cihazda) gidin ve Chrome Geliştirici Araçları konsolunu görüntüleyin. İlgili içeriği oluşturmak için kullanılan
Bu öğede getUserMedia()
geri çağırmasına stream
MediaStream nesnesi iletildi
demo global kapsamındadır; bu nedenle demoyu konsoldan inceleyebilirsiniz. Telefonla arama
Bu akışın MediaStreamTrack
bilgisini görüntülemek için stream.getTracks()[0]
.
Stop(), sona erdi ve etkin
Medya Yakalama ve Akışlar W3C Çalışma Grubu, bir MediaStream
öğesine yeni parçalar eklediğinizde ne olacağı sorununu ele aldığında,
Sonunda boş bir MediaStream
olduğunda,
ended
öğesini bir MediaStream
üzerinde uygulamanın mantıklı bir yolu yoktur ("bir daha asla başlamayacak" gibi). HTML5'in diğer bölümlerinde "sona erdi" "bu artık sona erdi ve
asla devam ettirme'. "Etkin" böyle bir çıkarım yoktur: Etkin olmayan bir akış,
yeniden etkin hale gelir (örneğin, yeni bir parça eklendiğinde). Çalışma Grubu, kafa karıştırıcı bir niteliğe ve işleve sahip olmak yerine
kaldırın.
"MediaStream.active"in nasıl kullanılacağına dair bir örnek bir anahtar kelimenin durumunu kontrol etmek için akış:
var gumStream;
navigator.getUserMedia({audio: false, video: true},
function(stream) {
gumStream = stream;
// ...
},
function(error) {
console.log('getUserMedia() error', error);
});
// …
if (gumStream.active) {
// do something with the stream
}
stop()
, MediaStream
klasöründen kaldırıldığında gerçek bir işlev kaldırmadı:
kaynak cihazları ayırma gibi işlemler ve bu işlemlerin
Yine de MediaStreamTrack
. Bunun yerine MediaStreamTrack
üzerinde stop()
kullanın:
navigator.getUserMedia({audio: false, video: true},
function(stream) {
// can also use getAudioTracks() or getVideoTracks()
var track = stream.getTracks()[0]; // if only one media track
// ...
track.stop();
},
function(error){
console.log('getUserMedia() error', error);
});
etiket
Anlaşılan kimse bu mülkün nasıl kullanılacağını tam olarak belirleyememiş!
Spesifikasyonun ilk sürümüne MediaStream.label
eklenmişti ama kimse bunun farkında değildi.
label
ne içindi. Canlı yayın sırasında label
cihazına ne olduğu da anlaşılamadı.
RTCPeerConnection
üzerinden gönderildi.
W3C Çalışma Grubu soru sordu ve kimse bunu istemedi, bu yüzden grubu kaldırdılar.
Tekrarlamak gerekirse: MediaStream.id
,
MediaStream
ve MediaStreamTrack.label
, kaynağın adını belirtir
kamera veya mikrofon türü gibi diğer seçeneklerle de alakalıdır.
MediaStream
ve MediaStreamTrack
hakkında daha fazla bilgi mevcut
Mozilla Geliştirici Ağı ve
HTML5 Rocks, oyun dili için getUserMedia()
için mükemmel bir giriş
Ses Yakalama ve Video.
Her zamanki gibi, Chrome'da yapılan değişikliklerle ilgili geri bildiriminiz bizim için değerlidir. Kullanımdan kaldırma işlemleriyle ilgili hataları (buradan ve buradan) takip edebilir, daha fazla tartışmayı ve ayrıntıyı Uygulama Amacı sayfasında bulabilirsiniz.