ios audio不能够正常播放
2024-08-23 22:05:43
ios中audio不能直接通过audio.play()
播放,需要用户在click事件或者touch事件中执行audio.play()
才能播放。
ajax回调中audio.play()
音乐不能正常播放。
用户点击按钮,等服务器返回数据后再播放相应的成功或失败的音乐,测试在ios中不能正常播放。猜测ios中的audio不能再ajax回调函数中
play()
下面记录一下ios中ajax回调中播放音乐的问题解决过程
解决方案一 --降低音量
在用户点击时间后将audio的音量设置为0
,等success后将音量设置为1
; volume
可以控制audio的音量大小,取值范围为 0~1
audio.volume=number
发现在chrome的手机模式可以将音乐静音,ios中竟然不能控制音量,好吧这个被ios屏蔽了。放弃了。。。
解决方案二 --播放后立即暂停
用户点击按钮后立即播放音乐,等ajax返回数据后再继续播放。测试能够正常播放。部分代码如下:
// 用户click事件
if (this.isIOS()) { // ios单独处理 安卓不需要
this.$refs.audio.play()
this.$refs.audio.pause()
}
// ajax成功后的事件
this.$refs.audio.pause()
this.$refs.audio.currentTime = 0
this.$refs.audio.play()
由于是vue项目,所以代码中有this.$refs
小伙伴们别介意;
总结
在ios中,如果需要播放音乐或者视频,需要用户手动触发事件在调用
.play()
才能播放(autoplay或者直接.play()是不能直接触发的
);如果需要在
ajax
回调函数中播放音乐,需要在用户触发事件后播放音乐立即暂停然后才能在回调函数中.play()
,不然ios
中是播放不成功的。
最新文章
- SVNKit支持SSH连接
- 组合or继承
- SVM1 线性SVM
- (转)投影矩阵的推导(Deriving Projection Matrices)
- MVC设计模式(持续更新中)
- 一步一步理解word2Vec
- Fast Report Data Filter
- sqlplus 一次奇葩问题 HTTP proxy setting has incorrect value
- ios常用的几个动画代码
- JS事件 之内存与性能
- linux终端使用ss代理
- LightOJ - 1341 Aladdin and the Flying Carpet (算术基本定理)
- oracle常用函数详解(详细)
- Linux如何实现开机启动程序详解(转)
- spring boot实战(第二篇)事件监听
- Getting Started with Amazon EC2 (1 year free AWS VPS web hosting)
- Notes About Singular Value Decomposition
- Salesforce LINKS
- pip国内镜像(清华大学镜像)
- levelDB, TokuDB, BDB等kv存储引擎性能对比——wiredtree, wiredLSM,LMDB读写很强啊