HTML5如何实现移动端页面加载后音频自动播放
Admin 2022-06-27 群英技术资讯 1101 次浏览
最近有这么一个需求,需要在手机加载一个页面的时候,自动播放音乐资源。一般情况下,这个问题也就解决了,但是要保证各种手机上表现一致,那就相当困难了,至少要费点儿周折。 下面有三种常规的方式,可以创建自动播放的audio对象:
第一种:页面上创建一个audio标签,写好相关的属性,如:autoplay='autoplay',正常情况下,这里写上资源地址之后,访问页面之后就可以自动播放了。但是如果音乐资源地址不确定,需要js改变的话,就需要使用JS来实现了。
(function() { var audio = document.getElementById('myAudio1'); audio1 = audio; audio.src = source; audio.loop = true; audio.autoplay = true; audio.play(); audio.addEventListener('canplay', canPlay, false); })();
第二种:和第一种比较相似,只不过所有的标签都是JS创建之后,插入到页面上的。
(function() { var audio = document.createElement("AUDIO"); audio2 = audio; audio.setAttribute("src", source); audio.setAttribute("loop", 'true'); audio.setAttribute("controls", 'controls'); audio.setAttribute("autoplay", 'true'); audio.setAttribute("id", 'myAudio2'); audio.addEventListener('canplay', canPlay, false); document.getElementById('example2').appendChild(audio); audio.play(); })();
第三种:没有任何dom标签,使用JS创建一个audio对象,然后通过JS控制audio对象的各种api实现资源更换和自动播放。
(function() { var audio = new Audio(); audio3 = audio; audio.src = source; audio.loop = true; audio.id = 'myAudio3'; audio.autoplay = true; audio.addEventListener('canplay', canPlay, false); audio.play(); })();
附:上述三个方法的demo
另外增加一种第三方库实现,音频资源的播放以及控制。 整理了一些第三方库,功能不只是播放音乐,还有一些其他功能,这个自己研究。
howler.js: http://goldfirestudios.com/blog/104/howler.js-Modern-Web-Audio-Javascript-Library buzz.js: http://buzz.jaysalvat.com/ audio.js: http://kolber.github.io/audiojs/ jPlayer.js: http://jplayer.org/
使用了上述方法之后,发现在Iphone手机(详细说明)和部分android手机仍然不能,自动播放。
他的播放条件是:必须有用户行为操作,才能进行播放。
所以就需要考虑,通过什么样的方式可以模拟用户的操作呢?网络上提供了一些方式,可以实现自动播放,如:
上述提到的前两条,我测试发现基本上没有效果。至于第三条,这个肯定是没有问题的,但是这种方式确实不完全算是自动播放,因为完全有可能用户就是不触碰页面,那么就是不会播放。但是在有些场景下,确实可以使用,这个要区分场景。
进而我想到了,能不能监听手机是否运动或者是移动,来进行播放音频呢?我监听了devicemotion(详细说明)事件,发现还是不行,此时我已经凌乱了,死的心都有了。
最后的最后,我使用了在页面上创建audio标签,使用JS调整audio相关属性和值,然后控制音频播放。
这种方式基本上,可以在不同的手机上表现出相同的效果,但是就是我测试的一个5S手机就是不行。。。同样别的5S却没有问题,具体原因到现在都没有查出来我就默默的把他忽略了。
为了能让哪些不能自动播放的提升一些体验,又绑定了一个touchstart事件,这样就算是不能自动播放,至少可以在触摸页面的可以进行播放,算是一种体验改进吧。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
设置方法:1、利用“max-width”属性设置元素的最大宽度,语法为“元素{max-width:元素最大宽度值;}”;2、利用“max-height”属性设置元素的最大高度,语法为“元素{max-width:元素最大高度值;}”。
本章给大家介绍html5如何利用canvas实现图片转素描效果。有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助。
CSS3动画当您在@keyframes中创建动画时,请把它捆绑到某个选择器,否则不会产生动画效果。通过规定至少以下两项CSS3动画属性,即可将动画绑定到选择器:•规定动画的名称•规定动画的时长今天介绍的是国外的CSS3AnimationCheatSheet、Animate.css、magiccss3animation,初次看到几个动画效果,感觉很酷,看了一下代 ...
本篇文章主要介绍了一份纯CSS loading效果代码示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
这篇文章给大家分享的是用CSS怎样实现导航固定,内容左右滑动的效果。小编觉得挺实用的,因此分享给大家做个参考,文中示例代码介绍的非常详细,实现效果如下,感兴趣的朋友接下来一起跟随小编看看吧。
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008