gpt4 book ai didi

javascript - RecordRTC:Ondataavailable 调用了两次。只有第一个文件是正确的,其他文件已损坏或太小

转载 作者:行者123 更新时间:2023-11-30 13:53:17 26 4
gpt4 key购买 nike

<分区>

我想以 2 秒的间隔记录本地和远程流,并使用 Ajax 将其上传到服务器。但问题是,ondataavailable 方法被调用了两次,所以同一个视频被两次上传到服务器。第一个视频可以正常播放,而其余视频要么损坏要么非常小(不到一秒)。所有视频的大小几乎相同!

我也尝试过使用 MediaRecorder API,但问题是一样的。我尝试了 5 秒的间隔,但仍然没有成功!

这是我获取本地流的方式:

navigator.mediaDevices.getUserMedia({
video: false,
audio: true
}).then(function (myStream) {
localStream = myStream;

localStream.getTracks().forEach(function (track) {
yourConn.addTrack(track, localStream);
});
}).catch(function (error) {
streamAdded = false;
console.warn('Could not detect microphone');
return false;
});

这是我进行录音的方式:

yourConn.ontrack = function (e) {
remoteVideo.srcObject = e.streams[0];

let recorder = RecordRTC([localStream, e.streams[0]], {
mimeType: 'video/webm;codecs=h264',
type: 'video',
timeSlice: 5000,
ondataavailable: function(blob) {
uploadBlob(blob);
},
});

recorder.startRecording();
}

uploadBlob 函数:

var formData = new FormData();
formData.append('recorded_file', mp4File);

$.ajax({
url: myURL,
data: formData,
cache: false,
contentType: false,
processData: false,
type: 'POST',
success: function (response) {
console.log(response);
}
});

我怎样才能毫无问题地录制两个流?

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com