丿白开水
丿白开水
  • 发布:2025-03-28 16:51
  • 更新:2025-03-31 12:03
  • 阅读:33

【报Bug】在支付宝小程序中uni.createInnerAudioContext() 播放结束,没有触发onEnded

分类:uni-app

产品分类: uniapp/小程序/阿里

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: win10

第三方开发者工具版本号: 3.9.41

基础库版本号: 2.9.80

项目创建方式: CLI

CLI版本号: ^2.0.2-3071120230427001

示例代码:

const player = uni.createInnerAudioContext()

复制代码  // 设置播放地址开始播放  
  player.src = 'https://dj-cdn.g2work.com//agent/tts/7961601303971908301/0/e5ff941f.mp3'  
  player.onCanplay(res => {  
    let musicTime = Math.floor(player.duration)  
    console.log('视频时长===>', musicTime, player.duration) // 这里打印的this.player.duration是0  
  })  
  player.onError(res => {  
    console.error('播放音频失败', res)  
  })  
  player.onPlay(res => {  
    console.log('播放音频成功', res)  
  })  
  // 监听音频播放停止  
  player.onStop(res => {  
    console.log('监听音频播放停止', res)  
  })  
  // 监听音频自然播放结束  
  player.onEnded(res => {  
    console.log('音频自然播放结束', res)  
  })  
  // 监听音频自然播放结束  
  player.onSeeked(() => {  
    console.log('音频onSeeked')  
  })  
  player.onPause(res => {  
    console.log('音频被暂停', res)  
  })  
  player.play()

操作步骤:

真机验证

预期结果:

同一份代码,微信小程序可以。支付宝小程序应该也能才对

实际结果:

微信小程序可以。支付宝小程序不可以

bug描述:

苹果还是安卓手机都无法监听到onEnded事件

2025-03-28 16:51 负责人:DCloud_UNI_OttoJi 分享
已邀请:
DCloud_UNI_OttoJi

DCloud_UNI_OttoJi - 日常回复 uni-app/x 问题,如果艾特我没看到,请主动私信

我试了一下支付宝原生小程序写法,也是正常播放、结束后无回调。你到支付宝小程序平台反馈吧。

复制代码Page({  
  onLoad(query) {  
    // 页面加载  
    console.info(`Page onLoad with query: ${JSON.stringify(query)}`);  
  },  
  onReady() {  
    // 页面加载完成  

    let player  
     player = my.createInnerAudioContext()  

    // 设置播放地址开始播放    
    player.src = 'https://dj-cdn.g2work.com//agent/tts/7961601303971908301/0/e5ff941f.mp3'  
    player.onCanplay(res => {  
      let musicTime = Math.floor(player.duration)  
      console.log('视频时长===>', musicTime, player.duration) // 这里打印的this.player.duration是0    
    })  
    player.onError(res => {  
      console.error('播放音频失败', res)  
    })  
    player.onPlay(res => {  
      console.log('播放音频成功', res)  
    })  
    // 监听音频播放停止    
    player.onStop(res => {  
      console.log('监听音频播放停止', res)  
    })  
    // 监听音频自然播放结束    
    player.onEnded(res => {  
      console.log('音频自然播放结束', res)  
    })  
    // 监听音频自然播放结束    
    player.onSeeked(() => {  
      console.log('音频onSeeked')  
    })  
    player.onPause(res => {  
      console.log('音频被暂停', res)  
    })  

    player.play()  
  },  

});  

要回复问题请先登录注册

  • 标题 / 粗斜体
  • 代码片段
  • 超链接 / 图片 / 视频
  • 列表 / 引用

文章内容较多时,可以用标题分段 :

## 大标题 
### 小标题

斜体 / 粗体 :

**粗体** 
*斜体*
***粗斜体***

代码片段 :

``` javascript
代码片段
```

超链接 :

[链接文字](链接地址) 例: [百度](http://www.baidu.com)

图片 :

![图片说明](图片地址) 例: ![百度logo](http://www.baidu.com/img/bdlogo.gif)

视频 :

!![视频说明](视频地址) 例: !![优酷视频](http://youku.com)

有序列表 :

1. 123
2. 123
3. 123

无序列表 :

- 123
- 123
- 123

引用 : ( 双回车后结束引用 )

> 引用内容
引用内容
引用内容