uni-app 安卓 音频播放无onTimeUpdate回调

uni-app 安卓 音频播放无onTimeUpdate回调

开发环境 版本号 项目创建方式
Mac 10.15.6 HBuilderX
Android Android 10
小米 k20 pro

音频播放,播放源bgAudioManager.src不一样会导致onTimeUpdate不触发,这是什么问题?

无回调onTimeUpdate

const bgAudioManager = uni.getBackgroundAudioManager();  
bgAudioManager.title = '致爱丽丝';  
bgAudioManager.singer = '暂无';  
bgAudioManager.coverImgUrl = 'https://bjetxgzv.cdn.bspapp.com/VKCEYUGU-uni-app-doc/7fbf26a0-4f4a-11eb-b680-7980c8a877b8.png';  
bgAudioManager.src = 'https://96.f.1 Ting.com/local_to_cube_202004121813/96kmp3/2020/08/21/21a_zj/01.mp3';  
bgAudioManager.onPlay(function() {  
  console.log('onPlay')  
})  
bgAudioManager.onTimeUpdate(function() {  
  console.log('onTimeUpdate')  
})

有回调onTimeUpdate

const bgAudioManager = uni.getBackgroundAudioManager();  
bgAudioManager.title = '致爱丽丝';  
bgAudioManager.singer = '暂无';  
bgAudioManager.coverImgUrl = 'https://bjetxgzv.cdn.bspapp.com/VKCEYUGU-uni-app-doc/7fbf26a0-4f4a-11eb-b680-7980c8a877b8.png';  
bgAudioManager.src = 'https://bjetxgzv.cdn.bspapp.com/VKCEYUGU-hello-uniapp/2cc220e0-c27a-11ea-9dfb-6da8e309e0d8.mp3';  
bgAudioManager.onPlay(function() {  
  console.log('onPlay')  
})  
bgAudioManager.onTimeUpdate(function() {  
  console.log('onTimeUpdate')  
})

相关链接:


更多关于uni-app 安卓 音频播放无onTimeUpdate回调的实战教程也可以访问 https://www.itying.com/category-93-b0.html

6 回复

下个版本修复,目前仅在Android上有问题

更多关于uni-app 安卓 音频播放无onTimeUpdate回调的实战教程也可以访问 https://www.itying.com/category-93-b0.html


特定手机?还是安卓就有这个问题?

Android有这个问题,和音频源有关,和机型没有关系

3.2.15.20211120 这个版本有修复这个问题吗?

HBuilder X 3.3.0-alpha已修复,请升级

这个问题通常与音频源的格式或编码有关。不同音频文件可能采用不同的编码方式,部分编码格式在安卓平台上可能无法正常触发 onTimeUpdate 回调。

从你提供的代码来看,两个音频源的主要区别在于:

  1. 第一个链接(无回调)是 .mp3 文件
  2. 第二个链接(有回调)也是 .mp3 文件

但实际差异可能在于:

  • 音频编码参数不同(比特率、采样率等)
  • 文件头信息不完整
  • 流媒体服务器的响应头设置

解决方案:

  1. 检查音频格式兼容性 尝试将音频文件转换为标准 MP3 格式,使用一致的编码参数(如 128kbps、44.1kHz)。

  2. 使用本地音频文件测试 下载音频文件到本地,通过相对路径测试,排除网络流媒体问题:

    bgAudioManager.src = '/static/audio/test.mp3';
    
  3. 添加错误监听 补充错误处理,查看是否有相关报错:

    bgAudioManager.onError(function(res) {
      console.log('音频错误:', res);
    });
回到顶部