// 获取相应的浏览器内核的getUserMedianavigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.msGetUserMedia; // 调用getUserMedia方法function getMedia() {
if (navigator.getUserMedia) {
navigator.getUserMedia({
'video': {
'optional': [{
'sourceId': exArray[1] //0为前置摄像头,1为后置
}]
},
'audio':true
}, successFunc, errorFunc); //success是获取成功的回调函数
}
else {
alert('Native device media streaming (getUserMedia) not supported in this browser.');
}
} // 获取摄像头源信息
// 通常手机只有两个源,前置和后置
MediaStreamTrack.getSources(function (sourceInfos) {
for (var i = 0; i != sourceInfos.length; ++i) {
var sourceInfo = sourceInfos[i];
//这里会遍历audio,video,所以要加以区分
if (sourceInfo.kind === 'video') {
// alert('sourceInfo'+ sourceInfo.id);
exArray.push(sourceInfo.id);
}
}
// 调用摄像头
getMedia(); // 定时展示小精灵
showPet();
});
// 获取相应浏览器的URL对象
window.URL = window.URL || window.webkitURL || window.mozURL || window.msURL;
function successFunc(stream) {
// 这里的stream为摄像头的实时数据
}
// 获取相应浏览器的URL对象
window.URL = window.URL || window.webkitURL || window.mozURL || window.msURL;
function successFunc(stream) {
if (video.mozSrcObject !== undefined) {
//Firefox中,video.mozSrcObject最初为null,而不是未定义的,我们可以靠这个来检测Firefox的支持
video.mozSrcObject = stream;
}
else {
video.src = window.URL && window.URL.createObjectURL(stream) || stream;
}
// 音频
audio = new Audio();
audioType = getAudioType(audio);
if (audioType) {
audio.src = ‘polaroid.’ + audioType;
audio.play();
}
}
“`