爱吃鱼的靖哥哥
爱吃鱼的靖哥哥
  • 发布:2020-04-11 14:49
  • 更新:2020-11-18 18:21
  • 阅读:3012

【报Bug】ios使用innerAudioContext播放音频,延迟好几秒才开始播放

分类:uni-app

ios使用innerAudioContext播放音频,延迟好几秒才开始播放,大概有5秒左右的样子,安卓的就很快,不知道这是什么原因

2020-04-11 14:49 负责人:DCloud_iOS_XHY 分享
已邀请:

最佳回复

DCloud_iOS_XHY

DCloud_iOS_XHY

此问题已修复,请升级到HBuilderX 2.7.2 + 版本

  • 强尼

    感谢感谢

    2020-06-22 12:53

  • 4***@qq.com

    回复 强尼: 楼主解决了吗?为何我现在还是遇到了这个问题,我使用video标签播放MP3,安卓没问题,秒播,视频播放都是秒播,唯独ios的音频文件一直是加载完毕才会播放,音频文件时长越长,延迟的时间越长,求助啊,楼主

    2020-08-18 17:43

  • 强尼

    回复 4***@qq.com: 已经好了吧,确保用的是最新的

    2020-08-21 17:04

  • 4***@qq.com

    回复 强尼: 是用的最新的,还是有延迟呢,不管是video播放还是uni.createInnerAudioContext方法都是有延迟的,老哥那边有例子吗?

    2020-08-22 09:51

  • 4***@qq.com

    回复 强尼: 我指的的是在微信h5上哦,我知道有一个背景音乐的方法,但是H5不支持

    2020-08-22 09:53

x***@qq.com

x***@qq.com - 疑问?的小纳?

本地音频还是网络音频

强尼

强尼 - NodeJs全栈实践者

同样的问题,请官方解答一下。我用的背景音频,都是要等几秒钟才开始播放,感觉是全部下载完成才能放

DCloud_iOS_XHY

DCloud_iOS_XHY

iOS 端的音频播放使用的系统的 AVPlayer 实现,网络音频需要加载缓存一定数据后才开始播放,跟网络也有关系

  • 强尼

    我一个10分钟的音频加载了700多秒才开始播放的,应该就是全部下载完才开始播放的,但使用video标签来播放就完全没有延迟的问题,想请问下目前有什么办法解决这个问题?我们是做音频播放app的,这个问题对我们来说很重要

    2020-05-08 13:37

  • 强尼

    比如有没有可能自定义缓冲时长,或者支持以音频流的形式播放

    2020-05-08 13:40

  • DCloud_iOS_XHY

    回复 强尼: 把这个音频 url 提供一下,我测试一下

    2020-05-08 14:23

  • 强尼

    回复 DCloud_iOS_XHY: 私信你啦,求助

    2020-05-08 15:23

  • DCloud_iOS_XHY

    回复 强尼: 测试过了,3秒就开始播放了。。。你那个700多秒怎么测试的那?

    2020-05-12 18:42

  • 强尼

    回复 DCloud_iOS_XHY: 说错了,是3秒多。但这也不合理呀,不过我已经花钱找人开发了ios原生插件解决了,现在都是瞬间播放,不知道你们代码怎么写的。。

    2020-05-12 22:41

  • DCloud_iOS_XHY

    回复 强尼: 问题解决了,调整了一下默认的缓存策略

    2020-05-13 18:54

  • 强尼

    回复 DCloud_iOS_XHY: 请问现在再打包的话解决了么?

    2020-06-08 13:54

  • DCloud_iOS_XHY

    回复 强尼: 是的,看一下第一条回复

    2020-06-08 14:29

逍遥一生

逍遥一生 - 前端工程师

//index.js  
Page({  
onReady (e) {  
this.innerAudioContext = wx.createInnerAudioContext()  
this.innerAudioContext.autoplay = true  
this.innerAudioContext.src = 'https://wufang-backend.adacampus.com/storage/dXd6YmpzYnY4cmZzam9wZ2hteHppbWk2OTU3cA==/4036579509_1602563267303.mp3'  
this.innerAudioContext.onPlay(() => {  
console.log('开始播放, new Date() - this.now', new Date() - this.now)  
})  
this.innerAudioContext.onError((res) => {  
console.log(res.errMsg)  
console.log(res.errCode)  
})  
},  
data: {  
innerAudioContext: {},  
src: '',  
now: null  
},  
audioPlay () {  
this.now = new Date()  
this.innerAudioContext.play()  
}  
})

该问题目前已经被锁定, 无法添加新回复