后端返回amr音频前端需要转化再播放实现如此简单
欢迎评论-点赞-收藏 👍👍👍👍👍👍👍👍👍
场景
通常前端接收后端音频文件时都会直接拿到 base64 格式的串,然后直接播放,但特殊情况肯定是有的后端在无法处理解析音频文件为 base64 的时候会返回给我们 amr 的串码,这时候就需要前端去二次转换为 base64 但是实现起来也很简单的一行代码即可!
实现代码
示例:
const jsonData = {
"id": 00000111,
"jsonData": "{\"msgid\":\"2713251583848741802_1692862879074_external\",\"action\":\"send\",\"from\":\"wmnaQNEQAAVYt9canEWYnEO14fQECdhQ\",\"tolist\":[\"LiuLanLan01\"],\"roomid\":\"\",\"msgtime\":1692862874183,\"msgtype\":\"voice\",\"voice\":{\"md5sum\":\"21db5f9ce1369e3dbfcc09f695ce0aba\",\"voice_size\":2680,\"play_length\":4,\"sdkfileid\":\"CtsDKjEqaDF0VmRKemZ4cmNWMHF0T1FyK2JYWmdZb3NkcG1WMEN3T3pOaGRUTHlNVmUxeXpTRksxeVphZDlUTi9wK3AzSnQyZW92czRQZ1JUOXVudElWbStPNXVuN2tTdHNyRm82UDlxQjUrT2JQNExsQTI0Q3FmUmpMVGlraUlZWXlEQzdpVVJmcGgraGhIWFIrNDJXNVNRaUNBaTVXS0t2R2RKRkh1RkVDcVlsZWt1S09id2R6cXY0WkxNRUtTTGdTRmx5RTdRSHZSQ1ltaGR0VjRmZTNlcTFnckRnTStDOTgraGV5U2F4NXk5QlVQZU5URmZwcnorOE5xSW5GUU9BMUlmdzVMWE9zSDNTRjQrNHZsNyswbEhJY1pSRVNPUTRETHYyTzBBOGNOUE1EelJXVFdRd0trOWtxN1hGWHFRVVR6b01OUnZaZklXOFpXbFlPdHZ6VWc0bkdlWHQzNStJazcyVEdaVnJVcUpCa1lyOUF0ZnJUOUFwYi9mK0IxZUFocExuYjFORVNVeVRTZEVjN1hEWGpxQ1VBRFp3eS9oVlBTeFU3UnIxeS9Za1RwYzZ3cmY5WXh6bURua0d6YjhNYStUQ3JqSVQwYkdmMXBmZWp1MnZ6SnRJWEE9PRI4TkRkZk56ZzRNVE13TURFMU9UazBOekUxT1Y4NE1qazFOVGd6TXpCZk1UWTVNamcyTWpnM09RPT0aIDZmNzk3MjYxNjI2MTY1Njg2MzYxNmE2MTY1NmE2Mjdh\"}}",
};
// 解析JSON中的jsonData字段
const jsonDataObject = JSON.parse(jsonData.jsonData);
// 获取jsonDataObject中的音频数据
const audioData = jsonDataObject.voice.sdkfileid;
// 使用btoa函数将音频数据转换为Base64编码
const base64AudioData = btoa(audioData);
console.log(base64AudioData);