微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将 Howler.js 设置为 html5: true 会中断到 MediaRecorder 的路由 . .录音只是沉默

如何解决将 Howler.js 设置为 html5: true 会中断到 MediaRecorder 的路由 . .录音只是沉默

我有一个测试页面,我通过 howler.js 将音频路由到 MediaRecorder,以记录和下载吼声输出的 .wav(连接到 Howler.mastergain)。这工作正常。但是,我想添加加速/减慢音频的能力。我用咆哮的“速率”方法实现了这一点。这也有效。

问题在于:Web Audio Api 在加速或减速时会改变音频的音高。我宁愿球场保持不变。这个音高问题似乎是网络音频 API 的一个缺点。所以 。 . .我决定强制咆哮以 HTLM5 音频模式运行(html5:true)。不幸的是,这样做修复了播放时的音调问题(HTML5 可以很好地做到这一点),但会破坏录音。 MediaRecorder 按预期记录和下载。 . .但生成的 wav 文件是无声的。我知道我可能在这里遗漏了一些东西。 . .那是什么?任何帮助将非常感激。提前致谢!

所以这是有效的:

    const sound = new Howl({ src: ['https://howlerjs.com/assets/howler.js/examples/player/audio/80s_vibe.webm']});

    const workerOptions = {
    OggOpusEncoderWasmPath: 'https://cdn.jsdelivr.net/npm/opus-media- 
    recorder@latest/OggOpusEncoder.wasm',WebMOpusEncoderWasmPath: 'https://cdn.jsdelivr.net/npm/opus-media- 
    recorder@latest/WebMOpusEncoder.wasm'};

    window.MediaRecorder = OpusMediaRecorder;
    let id;
    let streamDest = Howler.ctx.createMediaStreamDestination()   
    Howler.masterGain.connect(streamDest) 

进行这一更改修复了音高偏移,但会生成一个无声的 wav 文件

    const sound = new Howl({ src: ['https://howlerjs.com/assets/howler.js/examples/player/audio/80s_vibe.webm'],html5:true});

    const workerOptions = {
    OggOpusEncoderWasmPath: 'https://cdn.jsdelivr.net/npm/opus-media- 
    recorder@latest/OggOpusEncoder.wasm',WebMOpusEncoderWasmPath: 'https://cdn.jsdelivr.net/npm/opus-media- 
    recorder@latest/WebMOpusEncoder.wasm'};

    window.MediaRecorder = OpusMediaRecorder;
    let id;
    let streamDest = Howler.ctx.createMediaStreamDestination()   
    Howler.masterGain.connect(streamDest)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。