我正在使用 recorder.js 和 Recordmp3.js 来通过麦克风录制音频。
在 Chrome 浏览器中它运行良好,但在 Firefox (最新版本) 中却不行。
当我在 Firefox 浏览器上打开我的网页应用时,它会要求我分享麦克风,但几秒钟后它就消失了。因此,由于这个原因,在 Firefox 上无法录制任何音频。
我正在分享一个使用 Recordmp3.js 开发的工作示例,但它在 Firefox 中无法工作。
这是已知的问题吗?
我正在使用 recorder.js 和 Recordmp3.js 来通过麦克风录制音频。
在 Chrome 浏览器中它运行良好,但在 Firefox (最新版本) 中却不行。
当我在 Firefox 浏览器上打开我的网页应用时,它会要求我分享麦克风,但几秒钟后它就消失了。因此,由于这个原因,在 Firefox 上无法录制任何音频。
我正在分享一个使用 Recordmp3.js 开发的工作示例,但它在 Firefox 中无法工作。
这是已知的问题吗?
我是正确的,问题在于audioStream元素被垃圾回收了,我从github下载了代码并进行了修改。
修改后的代码如下:
var audio_context;
var recorder;
function startUserMedia(stream) {
var input = audio_context.createMediaStreamSource(stream);
转换为
var audio_context;
var recorder;
var localStream; // line added by me
function startUserMedia(stream) {
localStream = stream; // line added by me
var input = audio_context.createMediaStreamSource(stream);
stream
不被垃圾回收。
P.S :
需要注意的事项:
1: MP3编码/解码技术可能受某些国家的MP3专利管制。出于商业目的,建议使用vorbis/ogg
方式(我认为将wav转换后的mp3质量很差)。
2: 我发现录音中存在额外50%的静默问题,但如果我没记错的话,已经有解决方案在网上发布。
编辑:我在github上添加了一个演示。
stream
引用没有被存储在任何地方,因此在Firefox中可能会被垃圾回收,从而导致问题。 - mido