根据RecordRTC作者,chrome> =版本49已经支持mediarecorder api
我下载了50版以测试功能。
任何录音< 5分钟导致铬金丝雀崩溃。我该如何解决这个问题?
audioRecorder = RecordRTC(stream, {
recorderType: StereoAudioRecorder,
bufferSize: 16384, // mandatory: if 720p output is forced. otherwise: optional default buffersize 16384
//sampleRate: 22050, // default samplerate 48000
});
videoRecorder = RecordRTC(stream, {
type: 'video',
frameInterval: 90,
canvas: {
width: 1280,
height: 720
}
});
videoRecorder.initRecorder(function() {
audioRecorder.initRecorder(function() {
audioRecorder.startRecording();
videoRecorder.startRecording();
});
});
答案 0 :(得分:1)
请转到chrome://崩溃并从崩溃中提供的链接中提交错误,以便在Chrome Canary稳定之前解决问题。似乎还有一些问题,请参阅here
答案 1 :(得分:1)
使用 Chrome Canary或Beta版>=50
。启用此标记:chrome://flags/#enable-experimental-web-platform-features
现在试试这个RecordRTC片段:
var audioVideoRecorder = RrecordRTC(yourStream, {
type: 'video'
});
audioVideoRecorder.startRecording();
现在,您不仅可以获得音频/视频曲目的单一WebM,而且您还可以记录最少10到15分钟的录制而不会发生任何崩溃强>
如果你想记录最长的流,那么你可能想尝试一下:
以下是如何使用MediaRecorder API记录更长的流(因为RecordRTC目前似乎无法记录更长的流):
var recorder = new MediaRecorder(yourStream, {
mimeType: 'video/webm'
});
recorder.ondataavailable = function(e) {
if(!e || !e.data || !e.data.size) throw 'Failed.';
yourVideo.src = URL.createObjectURL(e.data);
// UploadToServer(e.data);
};
recorder.start(3600000); // record 60 minutes video
您甚至可以随时使用recorder.stop
停止;或recorder.pause
暂停录制。