Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript iOS Safari视频录制Blob/FileReader错误_Javascript_Video_Blob_Mobile Safari_Filereader - Fatal编程技术网

Javascript iOS Safari视频录制Blob/FileReader错误

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

我的问题是,我有一个脚本,可以从摄像机上拍摄视频。在我的iPhone上,有一个问题,我不能使用BLOB作为
的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();                
        }
    }
});