无法在移动设备上的浏览器中创建RTCIceCandidate实例

时间:2013-04-19 01:00:13

标签: javascript html html5 node.js webrtc

我最近尝试了HTML5和WebRTC的一些很棒的功能,并且正在建立一个允许多人视频聊天的网站。

在我的电脑上一切正常,HTML5的Media Capture就像一个魅力。但是当我在我的电脑上设置视频源,并尝试通过我的android / iphone / ipad连接到它时,它只是无法正常工作。我检查了日志,它表明RTCIceCandidate的创建由于某种未知原因而失败:

// To be processed as either Client or Server
case "CANDIDATE":
    trace("************important*********", "we get in");
    var candidate = new RTCIceCandidate({candidate: msg.candidate});
    trace("************important*********", JSON.stringify(candidate));
break;

结果显示第二个日志永远不会出现。

任何人都有任何想法?是因为现在移动设备上没有这些功能吗?或者我应该专门为移动设备做些什么?

哦,这是IceCandidatem的回调,从未被调用过:

// This function sends candidates to the remote peer, via the node server
var onIceCandidate = function(event) {
    if (event.candidate) {

       trace("openChannel","Sending ICE candidate to remote peer : " +  event.candidate.candidate);
       var msgCANDIDATE = {};
       msgCANDIDATE.msg_type  = 'CANDIDATE';
       msgCANDIDATE.candidate = event.candidate.candidate;
       msgCANDIDATE.peer = server;
       msgCANDIDATE.me = weAreActingAs;
       //trace("openChannel","candidate peer : " + JSON.stringify(event));
       socket.send(JSON.stringify(msgCANDIDATE));

    } else {
       trace("onIceCandidate","End of candidates");
    }
}

服务器位于nodejs。

非常感谢你们!需要你的手!

1 个答案:

答案 0 :(得分:0)

您应该可以在此处测试设备支持:http://www.simpl.info/getusermedia/

我不是webrtc的专家,但根据以下网站,我应该支持IOS和Android:http://updates.html5rocks.com/2012/12/WebRTC-hits-Firefox-Android-and-iOS但您需要使用爱立信浏览器

在其中一条评论中,它确实说爱立信浏览器使用折旧的ROAP信令,不能用于与(例如)Chrome的对等通信。一条评论指出blackbarry原生浏览器现在支持getUserMedia,因此Android和iOS可能会跟随。目前没有原生支持。爱立信浏览器的实施似乎基于折旧标准。