2015-04-09 12 views
6

Tôi phát âm thanh qua rtc và muốn tắt tiếng và bật âm thanh.Firefox createMediaStreamMỗi lỗi bằng rtc?

này hoạt động ... nhưng không kiểm soát được:

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

này hoạt động trên chrome nhưng không phải trên Firefox (với kiểm soát được)

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

tôi nhận được không có lỗi và tôi nghe có tiếng nói . Khi tôi gửi gainNode đến context.destination tôi có thể nghe thấy bản thân mình.

Tôi nghĩ rằng "context.createMediaStreamSource (luồng)" bị hỏng theo bất kỳ cách nào. Có ai cho tôi biết tại sao không? và cách khắc phục điều này.


EDIT: Vì vậy, tôi đã kiểm tra các con suối và:

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

trong Firefox! Trong chrome cả hai đều MediaStreams

+0

gì FF trở lại nếu bạn sử dụng 'navigator.mediaDevices.getUserMedia' thay vì' navigator.getUserMedia'? – K3N

+1

cùng loại dữ liệu và cùng một kết quả: không có tiếng nói. Nhưng giá trị một thử :) – Cracker0dks

+0

Vâng, họ có thể chỉ làm cho rằng có sẵn và có dây lên cùng một mã như với cách cũ. – K3N

Trả lời

3

Ok cảm ơn @Ken Fyrstenberg Tôi vừa thử xây dựng Firefox nhanh. Trên Everythink cao hoạt động tốt (như trong Chrome). Các loại dữ liệu là:

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

như trước đây, nhưng tôi có thể nghe thấy đối thủ và có thể tắt micrô.

Vì vậy, tôi chỉ phải chờ phát hành: P

3

Để tắt âm thanh bạn có thể bật/tắt các ca khúc riêng của mình bằng cách thực hiện:

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

này sẽ không giải quyết vấn đề với nút tăng, mà rất có thể là một lỗi/hạn chế trong Firefox tại thời điểm này (trong trường hợp đó chúng tôi chỉ có thể chờ sửa). Nhưng nếu mục đích là để (un) tắt tiếng này nên làm việc (nó cũng làm việc với các bài nhạc video).

+0

Đáng buồn là inst này hoạt động vì loại luồng là: LocalMediaStream và không phải MediaStream như trong chrome. Vì vậy, nó không có hàm getAudioTracks(). Trong chrome này hoạt động hoàn hảo! – Cracker0dks

+1

nhưng cách thông minh để tắt tiếng :) – Cracker0dks

+1

@ Cracker0dks nó làm cho nó đơn giản :) Hàng đêm có thể sẽ mất một vài tháng nhưng ít nhất là nó trong các công trình – K3N

Các vấn đề liên quan