对你来说,好消息是,实际上有一个图书馆在做你想做的事情。唯一可悲的是:相关的API(据我所知)在移动设备上不可用。换句话说,您需要构建一个抽象层,在移动设备上使用Cordova捕获API,在桌面设备上使用
RecordRTC
这是一个相当广泛的图书馆,或者更明确地说
Recorder.js
这需要更多的工作来实现。最后,您可以使用这个库
Recorder.js
它较旧,维护较少,但如果不支持WebRTC,则应恢复为闪存。
举例说明如何
记录RTC
应工作:
navigator.getUserMedia({audio: true, video:false}, function(mediaStream) {
window.recordRTC = RecordRTC(MediaStream);
recordRTC.startRecording();
});
btnStopRecording.onclick = function() {
recordRTC.stopRecording(function(audioURL) {
window.open(audioURL);
//or
recordRTC.save();
});
};
尽管如此,尽管这样的抽象层需要一些工作,但它远没有重新发明轮子。