का उपयोग कर स्ट्रीम मीडिया फ़ाइल यहां मेरा उपयोग मामला है: ऐलिस के पास एक अच्छा नया मीडिया ट्रैक है कि वह बॉब को सुनना चाहती है। वह अपने ब्राउज़र में मीडिया फ़ाइल का चयन करती है और मीडिया फ़ाइल बॉब के ब्राउज़र में तुरंत खेलना शुरू कर देती है।वेबआरटीसी
मुझे अभी भी यह सुनिश्चित नहीं है कि वेबआरटीसी एपीआई का उपयोग करना संभव है या नहीं। सभी उदाहरण मैं getUserMedia (के माध्यम से प्राप्त उपयोग धाराओं) प्राप्त कर सकते हैं, लेकिन यह है कि मैं क्या है:
var context = new AudioContext();
var pc = new RTCPeerConnection(pc_config);
function handleFileSelect(event) {
var file = event.target.files[0];
if (file) {
if (file.type.match('audio*')) {
console.log(file.name);
var reader = new FileReader();
reader.onload = (function(readEvent) {
context.decodeAudioData(readEvent.target.result, function(buffer) {
var source = context.createBufferSource();
var destination = context.createMediaStreamDestination();
source.buffer = buffer;
source.start(0);
source.connect(destination);
pc.addStream(destination.stream);
pc.createOffer(setLocalAndSendMessage);
});
});
reader.readAsArrayBuffer(file);
}
}
}
प्राप्त तरफ मैं निम्नलिखित है:
function gotRemoteStream(event) {
var mediaStreamSource = context.createMediaStreamSource(event.stream);
mediaStreamSource.connect(context.destination);
}
इस कोड (मीडिया नहीं है संगीत) प्राप्त करने वाले पक्ष पर खेलते हैं।
हालांकि मुझे
ईवेंट समाप्त हो गया है, वेबआरटीसी हैंडशेक के ठीक बाद और
मिला रिमोटस्ट्रीम फ़ंक्शन को कॉल किया गया था।
gotRemoteStream फ़ंक्शन को मीडिया कहा जाता है जिसे खेलना शुरू नहीं होता है।
एलिस की तरफ जादू का मानना है कि स्रोत.कनेक्ट (गंतव्य) कहता है। जब मैं स्रोत.कनेक्ट (context.destination) के साथ उस पंक्ति को प्रतिस्थापित करता हूं तो मीडिया ऐलिस के स्पीकर के माध्यम से सही ढंग से खेलना शुरू कर देता है।
बॉब की तरफ एक मीडिया स्ट्रीम स्रोत एलिस की धारा के आधार पर बनाया गया है। हालांकि जब स्थानीय स्पीकर मीडियास्ट्रीमसोर्स.कनेक्ट (context.destination) का उपयोग कर कनेक्ट होते हैं तो संगीत वक्ताओं के माध्यम से खेलना शुरू नहीं करता है।
जरुर मैं हमेशा एक DataChannel के माध्यम से मीडिया फ़ाइल भेज सकता है लेकिन जहां कि में मज़ा है ...
क्या मेरी कोड या कैसे मेरे उपयोग के मामले को प्राप्त करने पर कुछ विचार के साथ कुछ गलत है पर कोई सुराग होगा बहुत सराहना कीजिए!
मैं नवीनतम और सबसे बड़ी क्रोम कैनरी का उपयोग कर रहा हूं।
धन्यवाद।
मेरे कोड में एक त्रुटि के कारण बॉब की तरफ से प्राप्त स्ट्रीम समाप्त हो गई क्योंकि एलिस की तरफ से एसडीपी जवाब सही ढंग से संभाला नहीं गया था। इस मुद्दे को ठीक करने के बाद मीडिया अभी भी नहीं खेलता है लेकिन उदाहरण अलग-अलग व्यवहार करता है। मैंने तदनुसार सवाल अपडेट किया। – Eelco
यह असंबंधित हो सकता है (मुझे वेबआरटीसी के साथ कोई अनुभव नहीं है) लेकिन क्या https://github.com/wearefractal/holla आपकी मदद कर सकता है? – rickyduck