我使用以下jquery将HTML5音频元素添加到其他基本HTML页面.我希望音频标签自动开始播放(用户将导航到此特定页面/区域,以明确听到脱口秀节目的音频流).
它加载和播放在桌面Web浏览器和测试Android设备上开始正常,但在ios7(测试设备是iphone 4s),我可以看到触发测试警报,但音频元素的播放状态似乎无法访问/反应灵敏.
是否有人熟悉如何成功设置自动播放或以某种方式"触发"ios7中音频标签的播放状态?
如果没有,我想它会让我有机会让用户(移动设备用户专门)确认/确认他们理解带宽影响等等,并让他们的手动"点击"作为启动的触发器回放.
我以为我会在这里看到是否有人熟悉在ios7中这样做的方法 - 我不确定它是否也是以前版本的iOS下的一个问题.
谢谢.
继承我的代码片段:
$(document).ready(function() {
$('body').append('<audio src="EXTERNAL_AUDIO_STREAM_URL_HERE" autoload="false" autoplay="false" id="audiostream" controls/>');
// THIS WORKS FINE WHEN THIS ELEMENT IS CLICKED IN IOS7 MANUALLY, THE AUDIO STARTS FINE...
$('#startbutton').click(function(){
$('#audiostream')[0].load();
$('#audiostream')[0].play();
alert('loaded, fine...');
});
// THIS DOES NOT START AUDIO IN IOS7 AUTOMATICALLY...
setTimeout(function() {
$('#startbutton').trigger('click');
}, 2000);
});
Run Code Online (Sandbox Code Playgroud)
不,它不可能在ios上......
取自:Safari Developer Library文档:(
感谢ndm)[源链接在他的评论中]
在iOS上的Safari(适用于所有设备,包括iPad)中,用户可能位于蜂窝网络上并按数据单元收费,因此禁用预加载和自动播放.在用户启动数据之前不会加载任何数据.这意味着JavaScript play()和load()方法在用户启动回放之前也处于非活动状态,除非用户操作触发play()或load()方法.换句话说,用户启动的播放按钮有效,但onLoad ="play()"事件不起作用.
| 归档时间: |
|
| 查看次数: |
3522 次 |
| 最近记录: |