我最近尝试了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。
非常感谢你们!需要你的手!
答案 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可能会跟随。目前没有原生支持。爱立信浏览器的实施似乎基于折旧标准。