用js写一个方法,传一个Blob音频对象返回.MP3文件
时间: 2024-03-17 13:42:31 浏览: 365
要将 Blob 音频对象转换为 MP3 文件,需要使用第三方库。这里以 lamejs 为例,提供以下代码示例:
```javascript
function blobToMp3(blob) {
return new Promise((resolve, reject) => {
const reader = new FileReader();
reader.readAsArrayBuffer(blob);
reader.onloadend = () => {
const data = new Int16Array(reader.result);
const buffer = [];
for (let i = 0; i < data.length; i++) {
buffer.push(data[i]);
}
const mp3encoder = new lamejs.Mp3Encoder(1, 44100, 128);
const mp3Data = mp3encoder.encodeBuffer(buffer);
const mp3Blob = new Blob([new Uint8Array(mp3Data)], { type: 'audio/mp3' });
resolve(mp3Blob);
};
reader.onerror = reject;
});
}
```
这个方法接受一个 Blob 对象,返回一个 Promise 对象,Promise 对象解析出的值是转换后的 MP3 文件的 Blob 对象。调用方法如下:
```javascript
const mp3Blob = await blobToMp3(audioBlob);
```
其中 `audioBlob` 是传入的 Blob 对象。注意,这个方法中的 `lamejs` 库需要先引入,可以通过以下代码进行引入:
```html
<script src="https://cdn.jsdelivr.net/npm/lamejs@1.2.4/"></script>
```
阅读全文
相关推荐

















