该人默认没有自动播放功能
根据Safari / WebKit Auto-Play policy,它使用户能够以较少的干扰来浏览网络,特别是通过自动播放声音的网站来减轻干扰。他们指示网站假定对视频或音频的任何使用都需要用户手势或单击才能播放。
政策配置
用户可以在每个网站的基础上启用自动播放功能。
Safari >>首选项>>网站>>自动播放
选项为:
允许所有自动播放
用声音停止媒体(默认)
从不自动播放
功能性iframe允许在Safari中自动播放
当用户允许从特定网站自动播放时,iframe标签会按预期工作。
元素也可以独立加载和播放也不足为奇。
检测自动播放被禁用并显示播放器
但是,由于用户可以禁用此功能,因此应该预期不会启用此功能,因此,重要的是要检测是否拒绝了自动播放并做出相应的反应。
var promise = $('video')[0].play();
if (promise) promise.catch(error => {
// Auto-play disabled show controls
$('audio').attr('controls', '');
});
对于此选项,我们根本不需要自动播放,因为我们正在手动调用播放。如果需要用户进行操作,这当然是行不通的,因此我们要做的就是添加控件并显示播放器。
带有控件的音频
为了完整起见,总是有另一个选择;避免一起玩所有游戏……但这有什么乐趣。
nJoy!