为什么在html中插入了音频的代码,网页上打开却要刷新一次后才能播放? 20

为什么在html中插入了音频的代码<audiosrc="TwoStepsFromHell-ForTheWin.mp3"autoplay="autoplay"loop="l... 为什么在html中插入了音频的代码<audio src="Two Steps From Hell - For The Win.mp3" autoplay="autoplay" loop="loop"></audio>,网页上第一次打开的时候无法自动播放,需要刷新一次后才能播放? 展开
 我来答
  • 你的回答被采纳后将获得:
  • 系统奖励15(财富值+成长值)+难题奖励20(财富值+成长值)+提问者悬赏20(财富值+成长值)
前端晨话
2018-12-15 · 专注前端话题以及前端教育
前端晨话
采纳数:104 获赞数:228

向TA提问 私信TA
展开全部

html5的audio标签只支持三种格式,但没有一种格式在各个浏览器里通用,你可以对照一下下图,你应该是在火狐和Opera的浏览器里听不到声音。

针对这种情况,我们需要做三种格式的文件:

<audio autoplay="autoplay" loop="loop">

<source src=”Two Steps From Hell - For The Win.ogg” />
<source src=”Two Steps From Hell - For The Win.mp3″ />
<source src=”Two Steps From Hell - For The Win.wav” />

</audio>

虽然我们设置了autoplay,但是在ios10以上的微信端以及在sarafi里不能够自动播放,需要手动操作。但如果想自动播放的话,在网页端需要兼听touchstart事件:

<audio id="voice" autoplay="autoplay" loop="loop">
<source src=”Two Steps From Hell - For The Win.ogg” /><source src=”Two Steps From Hell - For The Win.mp3″ /><source src=”Two Steps From Hell - For The Win.wav” />
</audio>

var voice = document.getElementById('voice');
var voiceStatu = true;
//监听 touchstart 事件进而调用 <audio> 元素提供的 play() 方法播放音频
document.addEventListener("touchstart", function(e) {
            if (voiceStatu) {
                voice.play();
                voiceStatu = false;
            }
}, false);

具体自己去调试一下,不会再追问

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式