HTML5音频'触发播放'无法在iPad上运行

时间:2013-01-30 14:59:10

标签: javascript jquery html5 html5-audio

我有一个HTML5音频播放器,当点击一个元素时应该播放。它适用于所有桌面浏览器。它只是不在iPad上工作。

我已经读过ios不支持自动播放,并且用户必须启动播放...据我所知,这正是我通过在点击功能中使用我的代码所做的事情?

    var item = $('.type-aud'),
        path = item.attr('file'),
        html = '<audio controls><source src="'+path+'" type="audio/mpeg" class="audio"></audio><span class="play"></span>',
        playerClass = item.find('.audio');

        if (!playerClass.hasClass('audio')) {
            item.append(html);          
        } 

        item.click(function() { 
            var player = item.find('audio');

            if (!player.hasClass('playing')) {
                $(player).addClass('playing').trigger("play").next().addClass('pause').removeClass('play');
            } else {
                $(player).removeClass('playing').trigger("pause").next().removeClass('pause').addClass('play');
            }
        });

我启用了调试控件,如果我在原生控件上按“播放”,它就会开始工作......

由于

1 个答案:

答案 0 :(得分:1)

我最近正在处理类似的事情,发现您无法使用trigger事件播放音频。

e.g。我在尝试

$('#btn').click(function(){
    myAudioControl.play();
});

$('#btn').trigger('click');

此代码永远不会在iOS5上运行,因为它需要对元素进行物理点击。

这里有一个很好的解决方案Play a sound via javascript event in iOS 5 HTML5 app我与之合作找到问题的解决方案。

当用户点击按钮时,我基本上让音频播放静音mp3文件,然后更新音频src。然后我可以通过任何触发器或事件动态播放音频文件。