ios html背景音乐,javascript – IOS上的HTML5音频:currentTime如何小于初始值?

本文介绍了一种解决iOS设备上音频播放错误的方法,特别是在音频元素加载元数据之前尝试播放的问题。通过修改if条件语句,确保音频在指定时间内正确暂停,提供了修正后的JavaScript代码示例,适用于iOS和其他平台。此外,强调了避免在元数据加载前操作音频的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

起初你有一个错误的问题,因为你希望你的脚本在iOS上运行.因此,你在标题中的问题是无关紧要的.我们在iOS上有很多错误,iOS开发人员不想纠正它们.这是一个错误.写信给iOS支持并询问“怎么可能?”.

第二,你的帖子中有两个问题,因为你的脚本不能像你想要的那样在iOS上运行.

我为你写了解决方案.在音频元素加载元数据(第一个错误)之前,请确保您没有尝试调用音频.然后你有第二个错误:而不是:

if(audio.currentTime < start || audio.currentTime > end) //your mistake

你必须写:

if(audio.currentTime >= end)

解决方案(也适用于iOS)

var start = 1,

end = 1.3,

audio = document.getElementById('audio'),

button = document.getElementById('button'),

log = document.getElementById('log');

audio.addEventListener('timeupdate', function()

{

writeLog(audio.currentTime);

//your mistake: if(audio.currentTime < start || audio.currentTime > end)

if(audio.currentTime >= end)

{

audio.pause();

}

});

function writeLog(value)

{

var div = document.createElement('div');

div.innerHTML = value;

log.insertBefore(div, log.firstChild);

}

audio.addEventListener('loadedmetadata', function()

{

audio.pause();

button.removeAttribute('disabled');

});

button.addEventListener('click', function()

{

log.insertBefore(log.lastChild.cloneNode(!0), log.firstChild);

audio.currentTime = start;

audio.play();

});

#log

{

width:100%;

height:18em;

overflow-y:auto;

font:3em 'Courier New';

background:#069;

color:#7e0

}

#log div:last-child{display:none}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值