2015-04-09 17 views
6

Rtc üzerinden ses akışı yapıyorum ve sesin sesini kapatıp açmak istiyorum. Bu çalışır ... ama hiçbir kazanç kontrolüFirefox createMediaStreamRtc kullanarak sorgulama hatası mı?

:

function(stream) { /* getUserMedia stream */ 
     console.log("Access granted to audio/video"); 
     peer_connection.addStream(stream); 
} 

Bu DEĞİL Firefox'ta (kazanç kontrolü ile) krom çalışır ancak

function(stream) { /* getUserMedia stream */ 
    console.log("Access granted to audio/video"); 
    var microphone = context.createMediaStreamSource(stream); 
    gainNode = context.createGain(); 
    var dest = context.createMediaStreamDestination(); 
    microphone.connect(gainNode); 
    gainNode.connect(dest); 

    local_media_stream = dest.stream; 
    peer_connection.addStream(local_media_stream); 
} 

hiçbir hata alıyorum ve ben hiçbir sesini duymak . gainNode'u context.destination'a gönderdiğimde kendimi duyabiliyorum.

"context.createMediaStreamSource (stream)" herhangi bir şekilde bozuk olduğunu düşünüyorum. Herkes bana nedenini söyleyebilir mi? ve bunu nasıl düzeltebiliriz.


Edit: Ben akışları kontrol edilip:

stream //type: LocalMediaStream  
dest.steam //type: MediaStream 

Firefox'ta! krom her iki MediaStreams

+0

FF ne iade edilir? – K3N

+1

aynı veri türleri ve aynı sonuç: ses yok. Ama denemeye değer :) – Cracker0dks

+0

Evet, muhtemelen mevcut olanı yaptılar ve eskiden olduğu gibi aynı kodu kullandılar. – K3N

cevap

3

Teşekkürler @Ken Fyrstenberg Sadece Firefox Nighly inşa çalıştım. Neredeyse her şeyde iyi çalışıyor (Chrome'da olduğu gibi). Veri türleri şunlardır:

önceki gibi, ancak rakibi duyabiliyorum ve mikrofonun sesini kapatabiliyorum.

Yani sadece serbest bırakılması için beklemek zorunda: P `yerine navigator.getUserMedia`` arasında navigator.mediaDevices.getUserMedia` kullanırsanız

3

Eğer yaparak parçayı kendisi devre dışı/etkinleştirebilirsiniz sesi kapatmak için şunlardır:

stream.getAudioTracks()[0].enabled = false; // mutes 

Bu büyük olasılıkla bir hata olduğunu kazanç düğümle sorunu, çözmez/Şu anda Firefox'taki sınırlama (bu durumda yalnızca bir düzeltme için bekleyebiliriz). Ama eğer amaç (eğer) susturmaksa, bu işe yarayacaktır (video parçaları ile de çalışır).

+0

Ne yazık ki bu çalışma akışı, akım türü olduğu için çalışıyor: LocalMediaStream ve MediaStream, kromda olduğu gibi değil. Yani getAudioTracks() işlevine sahip değil. Kromda bu mükemmel çalışıyor! – Cracker0dks

+1

ama sesini kapatmanın akıllı yolu :) – Cracker0dks

+1

@ Cracker0dks bunu basitleştiriyor :) Gecelik muhtemelen birkaç ay sürecek ama en azından işlerde olacak – K3N