Javascript iOS Safari视频录制Blob/FileReader错误
我的问题是,我有一个脚本,可以从摄像机上拍摄视频。在我的iPhone上,有一个问题,我不能使用BLOB作为Javascript iOS Safari视频录制Blob/FileReader错误,javascript,video,blob,mobile-safari,filereader,Javascript,Video,Blob,Mobile Safari,Filereader,我的问题是,我有一个脚本,可以从摄像机上拍摄视频。在我的iPhone上,有一个问题,我不能使用BLOB作为的URL,所以我使用了FileReader,这使得base64来自BLOB。但我发现了另一个问题。当我在纵向模式下拍摄视频时,拍摄的视频是横向模式,非常宽。我需要将视频旋转到纵向模式。我不知道,如果我在Blob或FileReader代码中有错误。你能帮我吗?谢谢 这是我的HTML代码: <video autoplay="true" id="cameraVideo" playsinlin
的URL,所以我使用了FileReader,这使得base64来自BLOB。但我发现了另一个问题。当我在纵向模式下拍摄视频时,拍摄的视频是横向模式,非常宽。我需要将视频旋转到纵向模式。我不知道,如果我在Blob或FileReader代码中有错误。你能帮我吗?谢谢
这是我的HTML代码:
<video autoplay="true" id="cameraVideo" playsinline webkit-playsinline>
图片:
录制视频时:
录制视频时:
我也有同样的问题,我只发现了这个bug报告,它增加了这个案例,但还没有解决它的活动。两个问题:ondataavailable在mediaRecorder.stop()之后调用,并在ondataavailable函数中获取ev.data中的blob:0。有什么解决办法吗?我也面临同样的问题,你找到解决办法了吗?
var video = document.querySelector("#cameraVideo");
var mode = "rear";
var mediaRecorder;
var chunks = [];
if (navigator.mediaDevices.getUserMedia) {
navigator.mediaDevices.getUserMedia({video: { facingMode: "environment" } }).then(function (stream) {
video.srcObject = stream;
mediaRecorder = new MediaRecorder(stream);
}).catch(function (err0r) {
alert("Something went wrong!");
});
}
$(".camera").find(".take").on("touchstart mousedown", function() {
mediaRecorder.start();
mediaRecorder.ondataavailable = function(ev) {
chunks.push(ev.data);
}
});
$(".camera").find(".take").on("touchend mouseup", function() {
mediaRecorder.stop();
mediaRecorder.onstop = (ev)=>{
var blob = new Blob(chunks, { 'type' : 'video/mp4' });
chunks = [];
var videoURL = webkitURL.createObjectURL(blob);
if(video.srcObject) video.srcObject.getTracks().forEach(t => t.stop());
var reader = new FileReader();
reader.readAsDataURL(blob);
reader.onloadend = function() {
document.getElementById("savevideo").src = reader.result;
document.getElementById("savevideo").play();
}
}
});