2016-04-24 13 views
5

मैं वर्तमान में वेबआरटीसी का उपयोग कर वीओआईपी पर काम कर रहा हूं। यह जावास्क्रिप्ट में लिखा एक यूडब्ल्यूपी आवेदन होने जा रहा है।क्या आरटीसीपीयर कनेक्शन माइक्रोसॉफ्ट एज में काम करता है?

अब, मैं यह जांचने की कोशिश कर रहा हूं कि यह माइक्रोसॉफ्ट एज पर https://webrtc.github.io/samples से नमूनों का परीक्षण करके काम करता है या नहीं।

यह पता चला है कि यह ठीकRTCPeerConnection को छोड़कर ठीक काम करता है।

उदाहरण के लिए, जब मैंने एज में https://webrtc.github.io/samples/src/content/peerconnection/audio खोला, तो मुझे कॉल बटन पर क्लिक करने पर मुझे getUserMedia() error: NotFoundError दिया। क्रोम पर, यह ठीक काम करता है।

एक और उदाहरण है जब मैं https://apprtc.appspot.com की कोशिश की, यह मुझे दिया है

Messages: 
Error getting user media: null 
getUserMedia error: Failed to get access to local media. Error name was NotFoundError. Continuing without sending a stream. 
Create PeerConnection exception: InvalidAccessError 

Version:  
gitHash: c135495bc71e5da61344f098a8209a255f64985f 
branch:  master 
time:  Fri Apr 8 13:33:05 2016 +0200 

तो, मुझे लगता है कि ठीक करना चाहिए? Adapter.js भी कहा जाता है। मैं इसे सबकुछ की अनुमति भी देता हूं।

या मुझे इस परियोजना के लिए वेबआरटीसी का उपयोग नहीं करना चाहिए। यदि हां, तो मुझे क्या उपयोग करना चाहिए?

चीयर्स!

+0

जो आपके कैम/माइक के साथ एक समस्या की तरह दिखता है। Navigator.mediaDevices.enumerateDevices के आउटपुट की जांच करें उदा। [इस डेमो] का उपयोग करके (https://webrtc.github.io/samples/src/content/devices/input-output/) –

उत्तर

9

माइक्रोसॉफ्ट एज वेबआरटीसी के एक निम्न स्तर के विकेन्द्रीकृत चचेरे भाई ओआरटीसी को लागू करता है जिसमें RTCPeerConnection ऑब्जेक्ट का अधिकतर उपयोग नहीं होता है।

लेकिन अच्छी खबर यह है कि adapter.js, सरकारी WebRTC polyfill, शिम्स किनारे पर आप के लिए RTCPeerConnection है, तो आप सभी ब्राउज़रों पर WebRTC उसी तरह उपयोग करने के लिए सक्षम होना चाहिए।

उदाहरण के लिए, यह डेमो एज, फ़ायरफ़ॉक्स और क्रोम में मेरे लिए काम करता है।

var pc1 = new RTCPeerConnection(), pc2 = new RTCPeerConnection(); 
 

 
navigator.mediaDevices.getUserMedia({ video: true, audio: true }) 
 
    .then(stream => pc1.addStream(video1.srcObject = stream)) 
 
    .catch(log); 
 

 
var add = (pc, can) => can && pc.addIceCandidate(can).catch(log); 
 
pc1.onicecandidate = e => add(pc2, e.candidate); 
 
pc2.onicecandidate = e => add(pc1, e.candidate); 
 

 
pc2.onaddstream = e => video2.srcObject = e.stream; 
 
pc1.oniceconnectionstatechange = e => log(pc1.iceConnectionState); 
 
pc1.onnegotiationneeded = e => 
 
    pc1.createOffer().then(d => pc1.setLocalDescription(d)) 
 
    .then(() => pc2.setRemoteDescription(pc1.localDescription)) 
 
    .then(() => pc2.createAnswer()).then(d => pc2.setLocalDescription(d)) 
 
    .then(() => pc1.setRemoteDescription(pc2.localDescription)) 
 
    .catch(log); 
 

 
var log = msg => div.innerHTML += "<br>" + msg;
<video id="video1" width="160" height="120" autoplay muted></video> 
 
<video id="video2" width="160" height="120" autoplay></video><br> 
 
<div id="div"></div> 
 
<script src="https://webrtc.github.io/adapter/adapter-latest.js"></script>

संबंधित मुद्दे