我正在尝试从手机摄像头获取视频流并在视频元素上显示该流。这是我的代码的要点:
...
navigator.mediaDevices.getUserMedia(constraints)
.then((stream)=>{
video.srcObject=stream;
video.volume=0;
video.mute=0;
video.play(); //error here on iOS Safari
...
Run Code Online (Sandbox Code Playgroud)
虽然这适用于所有桌面和 Android 浏览器,但这似乎不适用于 iOS,给了我在线错误video.play()。
据我目前了解,这似乎是移动设备上 Safari 的一项安全措施,旨在防止网站消耗过多用户数据。这意味着,除非用户明确启动,否则浏览器将不允许video.play()
我尝试muted在视频元素本身上添加“”属性(除了autoplay),但这似乎没有解决问题。
因此,我想知道是否有任何其他补救措施可以解决此问题,或者我是否应该寻找其他方法来显示视频源。非常感谢任何帮助/建议。
我以前问过这个问题,但没有任何运气..我在本教程后遇到问题https://www.pubnub.com/blog/2014-10-21-building-a-webrtc-video-and-voice-chat - 应用/.我写了代码,它在本地网络上完美运行,但是当我尝试连接远程客户端(即不在同一网络上)时,代码不再起作用了.它只显示一个黑屏,客户端的视频应该是.
phone.receive(function(session){
session.connected(function(session){
$("#vid-box").append(session.video); //outputs black screen
});
session.ended(function(session) {alert("Call ended: "+session.number});
});
Run Code Online (Sandbox Code Playgroud)
我甚至联系了PubNub,但他们无法提供帮助.有人有什么想法吗?