我正在尝试制作一个直播应用程序,我想要在智能手机中切换摄像头的功能。我已经从 MDN 关注了这篇文章,但我无法获得预期的结果。
以下是我得到的结果: Chrome 移动结果:相机从前到后切换,但没有反过来切换。Firefox 移动搜索结果:摄像头使用后置摄像头开始流式传输(这不是预期的),而不是切换到前置摄像头。
我正在为这个应用程序使用 RTCMultiConnection 和 RecordRTC。
代码:
function switchCamera(stream){
connection.replaceTrack(stream)
video.pause();
video.srcObject = stream;
video.play();
}
var front = true;
$('#switch').on('click', function(e){
e.preventDefault();
e.stopImmediatePropagation();
front = !front;
var constraints = { video: { facingMode: (front? "user" : "environment") } };
var internalRecorder = recorder.getInternalRecorder();
connection.streamEvents.selectFirst({local: true}).stream.getVideoTracks().forEach(function(track){
track.stop();
});
navigator.mediaDevices.getUserMedia(constraints).then(function(stream){
if(internalRecorder instanceof MultiStreamRecorder){
internalRecorder.resetVideoStreams(stream)
}
switchCamera(stream)
});