后端有一个音频文件,前端 js 请求后端 音频 接口,接口中音频数据是在outputStream中,给我个案例
在前端JavaScript中,你可以使用fetch
API来请求后端的音频数据接口,并使用Blob
对象来处理二进制数据,最后使用URL.createObjectURL
来创建一个可以播放的音频URL。以下是一个简单的示例代码:
// 音频文件的URL
const audioUrl = 'http://yourbackend.com/audio-endpoint';
// 使用fetch请求音频数据
fetch(audioUrl)
.then(response => response.blob()) // 将响应转换为Blob
.then(blob => {
// 创建一个指向音频文件的URL
const audioUrl = URL.createObjectURL(blob);
// 创建一个audio元素并设置src属性为刚创建的URL
const audio = new Audio(audioUrl);
// 播放音频
audio.play();
// 当音频播放结束时,释放掉创建的ObjectURL
audio.addEventListener('ended', () => {
URL.revokeObjectURL(audioUrl);
});
})
.catch(error => {
console.error('音频加载出错:', error);
});
确保后端的音频接口能够正确处理请求,并返回正确的Content-Type
(比如audio/mpeg
或audio/ogg
)和音频数据。如果音频文件较大,记得在服务器端使用流式传输来减少内存使用和加载时间。
评论已关闭