首页 » 前端技术 » ios加载html5 audio标签用js调用.play()方法无效

ios加载html5 audio标签用js调用.play()方法无效

高蒙 2016/07/20 13:56 1.8w浏览 0评论 Html/Css


html5 audio标签在ios safari浏览器中,js是无法控制播放的。因为ios safari浏览器内置的把.play() .load()都给禁用了。官方的说法是为了用户着想,必须当用户手动的去出发播放控件的时候,拿到action,才可以播放。为什么,我会遇到这个问题呢?因为页面是用html5写的,要嵌入到ios里面。开始在安卓上面测试的时候,一点问题没有,一到苹果上面,直接挂了。查找原因发现ios使用的webview默认用safari浏览器渲染,为了整这个问题,查了很多资料,连苹果官方的文档都看了。下面看代码:

<div class="voice">
    <audio>
<source src="地址" type="audio/aac" />
    </audio>
</div>

<script>
$(document).on('click','.voice', function() {
    $(this).find('audio').get(0).play();
}
</script>

当我们运行上面的代码的时候,你会发现safari浏览器直接的报错。意思就是.play()方法不存在。

TypeError: 'undefined' is not a function (evaluating '$(this).find('audio').get(0).play()')

之前的解决方案:

解决方式,只能ios那边抓我的音频路径,自行的去播放了。如果有更好的方法,麻烦请告诉我,留言或邮件都可以。





相关文章

我有话说

站长昵称:(*)

输入内容:

选个头像:

评论列表

    ...

    高蒙

    男, PHP程序猿

    文章

    485

    标签

    42

    热度

    10w+

    南京, 江苏, 中国

    人生要是没有理想, 那跟咸鱼有什么分别。