1

嗨,我正在使用tone.js 使用我的麦克风录制音频,然后下载音频。

这是我的代码;


function test() {

var mic, recorder;
    
recorder = new Tone.Recorder();
mic = new Tone.UserMedia();
recorder = new Tone.Recorder();
mic.connect(recorder);
mic.open();
recorder.start();
    

    
setTimeout(async () => {

    // the recorded audio is returned as a blob
    const recording = await recorder.stop();
    mic.close();
    recording.date = Date.now();
    recording.name = `${Date.now()}.webm`;
    recording.type = "audio/webm";
    recording.codecs = "opus";
    recording.length = "120";
    
    // Create Object URL
    var blobUrl = URL.createObjectURL(recording);
    //instance.publishState("audio_blob", blobUrl);
    const anchor = document.createElement("a");
    anchor.download = `${Date.now()}.webm`;
    anchor.href = blobUrl;
    anchor.click();
    
}, 4000);
}

这是我从中获得此代码参考的链接。 记录器 - UserMedia API

问题

现在当我播放下载的音频文件时,它不显示音频长度。我尝试使用将长度属性添加到音频 blob,recording.length = "120";但它仍然没有将长度添加到音频文件。我需要知道如何为我的音频文件添加长度。我应该使用哪种编解码器和格式。当我尝试使用 mp3 格式时,下载的文件已损坏。这是为什么 ?

您可以使用 codepen 来测试 API。它与我的代码有点不同,但概念是相同的。CodePen 示例

4

0 回答 0