0

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

在我的 PC 上一切正常,HTML5 的媒体捕获就像一个魅力。但是当我在我的 PC 上设置一个视频源,并尝试通过我的 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中。

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

4

1 回答 1

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 可能会跟进。不过目前没有原生支持。而爱立信浏览器的实现似乎是基于折旧的标准。

于 2013-04-19T03:47:27.957 回答