作者:我是王瑀 | 来源:互联网 | 2023-09-01 10:18
我正在使用“ react-native-track-player”在React native中播放MP3网址。但是,当我通过标头身份验证时,我无法获得MP3 URL的全部时间。在我的屏幕上,有必要显示播放器加载之前的整个URL时间。而且我也无法使用“ seekTO”进行前进和后退动作。对于跟踪播放器,代码如下,
var list = [currentitem].map(item => Object.assign(item,{
artist: 'tootak',headers: { Authorization: Global.authenticateUser },url: item.is_local ?
('file://' + (item.url ? item.url : (item.URL ? item.URL : '')))
: Global.getMediaLink(item.url ? item.url : (item.URL ? item.URL : '')),id: item.code,artwork: Global.getUrl(item.images),}))
await TrackPlayer.reset()
await TrackPlayer.add(list)
并为seekTo
var time = await TrackPlayer.getposition()
await TrackPlayer.seekTo(time + 15)
他们在文档中提到该库仅用于直接流音频,而不依赖于它来获取持续时间。
react-native-track-player是一个流媒体库,这意味着它会缓慢缓冲曲目,并且不知道确切的结束时间。此函数返回的持续时间是通过各种技巧确定的,可能不准确,也可能根本不可用。
您不应该信任此功能。您应该从数据库中检索持续时间,并将其输入到跟踪对象中的持续时间参数。
我们需要使用FFprobe或FFmpeg之类的东西作为流分析器来检索值。有一个名为get-audio-duration的软件包可以为您完成工作。