【发布时间】:2016-10-26 00:14:55
【问题描述】:
我正在使用 ionic 测试一些媒体功能,并且在尝试使用 getUserMedia 使用此代码将相机输出设置为视频标签时卡住了:
navigator.getUserMedia = navigator.getUserMedia ||
navigator.webkitGetUserMedia ||
navigator.mozGetUserMedia;
if (navigator.getUserMedia) {
navigator.getUserMedia({ audio: false, video: { width: 500, height: 500 } },
function(stream) {
console.log("Im streaming!!", stream);
var video = document.querySelector('video');
console.log("video element", video);
video.src = window.URL.createObjectURL(stream);
video.onloadedmetadata = function(e) {
console.log("stream start");
video.play();
};
},
function(err) {
console.log("The following error occurred: " + err.name);
}
);
} else {
console.log("getUserMedia not supported");
}
这是html:
<ion-pane>
<ion-header-bar class="bar-stable">
<h1 class="title">Ionic Blank Starter</h1>
</ion-header-bar>
<ion-content>
<video id="video" autoplay="autoplay" width="500" height="500"></video>
</ion-content>
</ion-pane>
我实际上只能得到一个黑屏。我的方法是正确的还是我遗漏了什么?
【问题讨论】:
-
您是否尝试删除
video.onloadedmetadata并直接致电video.play()? -
我可以在控制台中看到“stream start”,所以我认为 video.play() 被正确调用
-
你能在android manifest文件
<uses-permission android:name="android.permission.RECORD_AUDIO" /> <uses-permission android:name="android.permission.CAMERA" />中检查你是否有正确的权限 -
是的,我两个都有
-
确实在科尔多瓦应用程序上重现了该问题,并通过将摄像头设置为后置设法克服了该问题。默认情况下在前面
标签: ionic-framework getusermedia