javascript - 未调用音频进度事件
问题描述
所以我在一个基于类的组件中得到了这个函数,它从 api 调用加载音频文件
loadAudio = () => {
var x = new Audio("http://localhost:5000/getSong")
x.addEventListener("progress", event => { console.log("progress"); })
this.setState({ audioSrc: x })
}
我从 componentDidMount 函数调用这个函数。
componentDidMount() {
this.loadAudio()
}
音频加载,我可以使用它播放它,.play()
但progress
事件只显示两次,而当我使用浏览器点击 URL 并在 vanilla JS 中使用类似脚本时,文件被多次缓冲。然后progress
被多次调用。
我需要知道加载的音频的值,这样我就可以像任何主要的流媒体网站一样将它与缓冲进度条连接起来。
后端脚本供参考:
app.get('/getSong', cors(), function (req, res) {
var path = require('path')
var filePath = path.join(__dirname,"assets","b.mp3")
console.log(filePath)
var stat = fs.statSync(filePath);
var readStream = fs.createReadStream(filePath);
res.writeHead(200, {
'Content-Type': 'audio/mpeg',
'Content-Length': stat.size
});
readStream.pipe(res)
});
app.listen(port, () => console.log(`Example app listening at http://localhost:${port}`))
解决方案
推荐阅读
- android - firebase 查询 orderByChild().equalTo() android kotlin 的问题
- java - JavaFX css菜单边框颜色错误
- c - rand() 与 fork() 一起使用时生成相同的数字
- r - 将 ggplot2 与 ks 包的 kde 图一起使用
- aspnetboilerplate - ASP.NET 零(ABP)调用控制器中的简单操作
- c# - 如何在 discord.net 中获取用户、机器人和在线用户数?
- python - 如何在ezdxf中获取块的大小和位置?
- npm - Windows 10 中 Phoenix LiveView 应用的 Npm 安装失败
- vba - 如何更新与 Environ 用户名匹配的多条记录?Microsoft Access 数据库引擎找不到输入表
- git - Git 错误地认为我是最新的