首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >将数据音频转换为mp3 (或ogg)

将数据音频转换为mp3 (或ogg)
EN

Stack Overflow用户
提问于 2018-09-24 15:26:46
回答 1查看 1.5K关注 0票数 0

我想将来自麦克风的Blob格式的数据音频转换为另一种(占用空间较少的)格式。

我在GitHub上找到了this project,它做的和我想要的非常接近,但问题是我通过以下方式获取音频数据:

代码语言:javascript
复制
navigator.mediaDevices.getUserMedia
then
rec = new MediaRecorder(stream);
rec.ondataavailable = e => {
    .......
    audioChunks.push(e.data);
    if (rec.state == "inactive") {
        let blob = new Blob(audioChunks,{type:'audio/x-mpeg-3'});
        .....

而我发现的这个项目以一种不同的方式处理数据音频:

代码语言:javascript
复制
navigator.getUserMedia({audio: true}, function(stream) {
      callback(new RecorderObject(audio_context.createMediaStreamSource(stream), cfg));
}, function(e) {
      console.log("An error occurred"); //Null if something goes wrong
      callback(null);
});

因此,在我自己的项目中使用我在GitHub项目中看到的内容似乎很复杂。我会很高兴,如果有人掌握了这一主题,并可能知道我所指的项目可以告诉我,如果有一些方法,我可以适应它的项目,以适应我自己的需要。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-26 08:02:19

第一个示例已经在做您想要的事情了。MediaRecorder包括编解码器支持。

这行代码:

代码语言:javascript
复制
let blob = new Blob(audioChunks, {type: 'audio/x-mpeg-3'});

应该是:

代码语言:javascript
复制
let blob = new Blob(audioChunks, {type: rec.mimeType});

https://developer.mozilla.org/en-US/docs/Web/API/MediaRecorder/mimeType

另请注意,对于较旧的浏览器,可能不存在mimeType属性。对于这些,只需使用相同类型初始化MediaRecorder即可。

代码语言:javascript
复制
new MediaRecorder(stream, {mimeType: 'audio/webm'})

https://developer.mozilla.org/en-US/docs/Web/API/MediaRecorder/MediaRecorder

第二个示例是使用Web Audio API录制PCM数据...一种不再需要的技术,特别是现在WebM中的MediaRecorder支持PCM。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52474485

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档