4***@qq.com
4***@qq.com
  • 发布:2024-09-24 10:40
  • 更新:2024-10-31 18:41
  • 阅读:567

使用uni.createInnerAudioContext()创建的对象调用play()方法无效,音频无法播放

分类:uni-app

正在使用uniapp开发微信小程序,有个功能用到了语音播放,之前一直没问题,这次发版后突然不能用了,查了下发现是play方法没有正确执行,但是不知道为什么。。求大佬们解惑。hbuildx版本是最新的4.24。

下面这段代码是可以进行播放的:

const innerAudioContext = uni.createInnerAudioContext();  
innerAudioContext.src = 'https://web-ext-storage.dcloud.net.cn/uni-app/ForElise.mp3';  
innerAudioContext.onPlay(() => {  
  console.log('开始播放');  
});  
innerAudioContext.play()

下面这段代码中play方法就不起作用:

const innerAudioContext = ref(null)  
innerAudioContext .value = uni.createInnerAudioContext();  
innerAudioContext.value.src = 'https://web-ext-storage.dcloud.net.cn/uni-app/ForElise.mp3';  
innerAudioContext.value.play()

以上代码在h5中可以播放,小程序不行。
然后找了个低版本的hbuildx(3.8.7),编译后在开发者工具就可以播放。
所以是hbuildx版本升级导致的这个问题吗?求大佬帮忙解答

2024-09-24 10:40 负责人:无 分享
已邀请:
tuonioooo

tuonioooo

确实有这个问题,不能绑定this 对象,绑定this 对象 play方法就会失效,

解决方式:可以在局部方法中,或者全局的方法中定义一个变量,暂时渡过这个版本的bug,等待官方修复,在改过来

注意:目前只发现 在微信小程序环境中会有这问题

  • 2***@qq.com

    定义成为全局变量就可以,绝对不能用this相关的所有东西,每次调用 this.你的音频实例,都会创建一个新的指向,你永远获取不到你当前定义的。

    2024-11-12 17:57

  • 2***@qq.com

    const context = uni.createInnerAudioContext();

    export default {


    创建在外边可以使用play()和pause(),其它的方法都寄了,没一个可以调用的。

    2024-11-12 18:00

要回复问题请先登录注册