如何解决如何在JS中剪切音频mp3 Blob
我一直在寻找用Js剪切音频Blob,然后返回剪切的Blob。
使用WebAudioRecorder.js并使用您的PC麦克风注册Blob。
我已经找到这个仓库:mp3-cutter,但是它是用node.js编写的,并且需要访问文件系统。
我还找到了一个audio-cutter,但它有一个UI。
我探索了多种解决方案,但没有找到任何简单的解决方案。
在分析录音时,我发现向麦克风注册的mp3具有1024位标题。使用这个,并且基于this,我写了一点Js函数:
/**
* params:
* params.src: Blob Object
* params.start: start time in sec
* params.end: end time in sec
* params.bitrate: in kbps
*/
function cutter(params) {
let cuttedBlob;
if (!params.src || params.start == null || params.end == null)
throw 'Invalid parameters! ';
if (params.start > params.end)
throw 'Start is bigger than end! ';
let kbps;
if (!params.bitrate)
{
console.log("Checks have been done");
console.log(params.src);
var kbit = params.src.size / 128;
console.log("bitrate: " + kbit);
kbps= Math.ceil(Math.round(kbit / 204) / 16) * 16;
console.log(kbps + "kbps");
}
else
kbps = params.bitrate;
cuttedBlob = params.src.slice(1024 + (params.start * kbps),params.end * kbps,"audio/mpeg3");
return cuttedBlob;
}
但这似乎不起作用。
我想念什么吗?
提前谢谢!
解决方法
好吧,我发现了。
您需要将blob转换为ArrayBuffer,然后转换为AudioBuffer,进行剪切,然后使用mp3-lame-encoder-js这样的编码器对其重新编码
为了提供帮助,我写了一个名为simple-mp3-cutter的小图书馆
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。