您现在的位置是:网站首页> 编程资料编程资料
HTML5页面音频自动播放的实现方式html5 video全屏播放/自动播放的实现示例html5中嵌入视频自动播放的问题解决html5自动播放mov格式视频的实例代码解决HTML5中的audio在手机端和微信端的不能自动播放问题HTML5 解决苹果手机不能自动播放音乐问题有关HTML5中背景音乐的自动播放功能HTML5页面音视频在微信和app下自动播放的实现方法
2021-08-30
1121人已围观
简介 本文给大家分享三种常规的方法创建自动播放的audio对象,就每种方式通过实例代码给大家介绍的非常详细,对html5音频自动播放相关知识感兴趣的朋友一起看看吧
最近有这么一个需求,需要在手机加载一个页面的时候,自动播放音乐资源。一般情况下,这个问题也就解决了,但是要保证各种手机上表现一致,那就相当困难了,至少要费点儿周折。 下面有三种常规的方式,可以创建自动播放的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手机仍然不能,自动播放。
他的播放条件是:必须有用户行为操作,才能进行播放。
所以就需要考虑,通过什么样的方式可以模拟用户的操作呢?网络上提供了一些方式,可以实现自动播放,如:
- 创建一个Image对象,然后监听Image是否加载完毕,如果加载完毕,执行audio的播放,达到自动播放效果
- 一个类似的方法, 创建一个iframe,资源直接就是音频资源的地址,iframe加载完毕就能自动播放
- 给document或者body绑定一个touchstart事件,这样用户只要触碰到页面就可以触发播放
上述提到的前两条,我测试发现基本上没有效果。至于第三条,这个肯定是没有问题的,但是这种方式确实不完全算是自动播放,因为完全有可能用户就是不触碰页面,那么就是不会播放。但是在有些场景下,确实可以使用,这个要区分场景。
进而我想到了,能不能监听手机是否运动或者是移动,来进行播放音频呢?我监听了devicemotion(详细说明)事件,发现还是不行,此时我已经凌乱了,死的心都有了。
最后的最后,我使用了在页面上创建audio标签,使用JS调整audio相关属性和值,然后控制音频播放。
这种方式基本上,可以在不同的手机上表现出相同的效果,但是就是我测试的一个5S手机就是不行。。。同样别的5S却没有问题,具体原因到现在都没有查出来我就默默的把他忽略了。
为了能让哪些不能自动播放的提升一些体验,又绑定了一个touchstart事件,这样就算是不能自动播放,至少可以在触摸页面的可以进行播放,算是一种体验改进吧。
补充: 2015年05月31日iOS 微信 音频 视频自动播放
以上就是HTML5页面音频自动播放问题的详细内容,更多关于html5音频自动播放的资料请关注其它相关文章!
相关内容
- Html5大屏数据可视化开发的实现html5实现点击弹出图片功能html5 录制mp3音频支持采样率和比特率设置html5表单的required属性使用html5调用摄像头实例代码HTML5页面音频自动播放的实现方式Html5大屏数据可视化开发的实现html实现弹窗的实例HTML5来实现本地文件读取和写入的实现方法HTML 罗盘式时钟的实现HTML5简单实现添加背景音乐的几种方法
- html实现弹窗的实例css实现弹窗上下左右居中且背景透明锁定窗口效果CSS实现带遮罩层可关闭的弹窗效果CSS导航栏及弹窗示例代码弹窗居中的简单实现方法不是所有弹窗都是流氓 关于网站弹窗的设计技巧利用js+css简单实现半透明遮罩弹窗网页设计中的弹窗与浮层的设计
- HTML5来实现本地文件读取和写入的实现方法利用html5 file api读取本地文件示例(如图片、PDF等)浅谈HTML5 FileReader分布读取文件以及其方法简介html5读取本地文件示例代码
- HTML 罗盘式时钟的实现Html5 canvas实现粒子时钟的示例代码HTML写一个网页动态时钟HTML5实现可缩放时钟代码用HTML5的canvas实现一个炫酷时钟效果使用html5 canvas 画时钟代码实例分享用HTML5制作数字时钟的教程html5绘制时钟动画html5时钟实现代码
- HTML5简单实现添加背景音乐的几种方法有关HTML5中背景音乐的自动播放功能利用HTML5实现使用按钮控制背景音乐开关
- canvas绘制折线路径动画实现html5如何在Canvas中实现自定义路径动画示例
- Html5生成验证码的示例代码利用html5 canvas破解简单验证码及getImageData接口应用
- html5中sharedWorker实现多页面通信的示例代码HTML5新特性 多线程(Worker SharedWorker)
- Html5通过数据流方式播放视频的实现HTML5 播放 RTSP 视频的实例代码html5播放视频且动态截图实现步骤与代码(支持safari其他未测试)
- HTML5中 rem适配方案与 viewport 适配问题详解Html5移动端网页端适配(js+rem)详解html5页面 rem 布局适配方法html5中JavaScript removeChild 删除所有节点
