2015-01-12 7 views
9

मैं वेबआरटीसी में केवल स्थानीय ऑडियो प्लेबैक को म्यूट करने की कोशिश कर रहा हूं, विशेष रूप से getUserMedia() के बाद और किसी भी सर्वर कनेक्शन से पहले। मुझे कोई विकल्प नहीं मिला है; Muaz खान से यह एक विफल रहता है:वेबआरटीसी - स्थानीय ऑडियो आउटपुट को म्यूट कैसे करें

var audioTracks = localMediaStream.getAudioTracks(); 
// if MediaStream has reference to microphone 
if (audioTracks[0]) { 
    audioTracks[0].enabled = false; 
} 

source

इस तकनीक के रूप में "काम" भी described here है, लेकिन क्रोम संस्करण 39.0.2171.95 (64-बिट) (Ubuntu 14.04) पर यहाँ विफल रहता है।

अतिरिक्त विधि मात्रा लाभ का उपयोग करके काम करने के लिए कहा जाता है कि:

window.AudioContext = window.AudioContext || window.webkitAudioContext; 
var audioContext = new AudioContext(); 
var source = audioContext.createMediaStreamSource(clientStream); 
var volume = audioContext.createGain(); 
source.connect(volume); 
volume.connect(audioContext.destination); 
volume.gain.value = 0; //turn off the speakers 

tl; डॉ मैं अपने वक्ताओं पर मेरे माइक्रोफोन से इनपुट सुनना नहीं चाहते हैं, लेकिन मैं अपने वीडियो देखना चाहते हैं छवि।

वर्कअराउंड

इस तरीके को Benjamin Trent द्वारा सुझाव दिया गया था और यह बहुत की तरह वीडियो टैग पर मौन विशेषता सेट करके ऑडियो म्यूट करता है:

document.getElementById("html5vid").muted = true; 

Also similar question, but its for video, so not the same

+0

क्यों मौन को एचटीएमएल वीडियो टैग सेट नहीं? –

+1

यह मेरे मामले में आदर्श नहीं है, लेकिन टैग पर ऑडियो "केवल" म्यूट समर्थित है? –

+1

वीडियो एचटीएमएल टैग को म्यूट करने से वीडियो से जुड़े ऑडियो को म्यूट कर दिया जाता है। वीडियो खेलना जारी रहेगा और स्ट्रीम में ऑडियो और वीडियो ट्रैक दोनों अभी भी सुलभ होंगे और दूसरे सहकर्मी को भेजे जा सकेंगे। ऐसा लगता है, हालांकि, आपको उबंटू पर उस क्रोम रिलीज में एक बग मिली है जिसे संबोधित करने की आवश्यकता है। –

उत्तर

4

के रूप में इस जोड़ना उत्तर दें क्योंकि यह वास्तव में सही उत्तर है:

आप एक समाधान के रूप में क्या कहा गया है कि क्या कई प्रमुख WebRTC वीडियो प्लेटफार्मों द्वारा प्रयोग किया जाता है है:

navigator.mediaDevices.getUserMedia({ video: true, audio: true }) 
    .then(stream => { 
    const vid = document.getElementById('html5vid'); 
    vid.autoplay = true; 
    vid.muted = true; 
    vid.srcObject = stream; 
    }); 
संबंधित मुद्दे