HTML5 音频“触发播放”在 iPad 上不起作用

Posted

技术标签:

【中文标题】HTML5 音频“触发播放”在 iPad 上不起作用【英文标题】:HTML5 Audio 'trigger play' not working on iPad 【发布时间】:2013-01-30 14:59:10 【问题描述】:

我有一个 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');
            
        );

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

谢谢

【问题讨论】:

直接调用video API方法有效吗? player[0].play()?也许 ipad 认为触发路径“太长”而不能直接进行用户交互? 这种工作...我必须点击具有点击事件的元素大约 8 次才能实际播放...但肯定不是缓冲问题,因为文件很小. 【参考方案1】:

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

例如我在尝试

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

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

此代码将永远无法在 iOS5 上运行,因为它需要物理单击元素。

Play a sound via javascript event in iOS 5 HTML5 app 这里有一个很好的解决方案,我与它一起寻找解决问题的方法。

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

【讨论】:

以上是关于HTML5 音频“触发播放”在 iPad 上不起作用的主要内容,如果未能解决你的问题,请参考以下文章

html5 播放事件与视频标签中的播放事件

为啥我的停止按钮在这个 javascript 音频播放器上不起作用?

Xml 音频列表播放器在移动设备上不起作用,并且自动播放不起作用

iOS:音频单元 RemoteIO 在 iPhone 上不起作用

音频在 Virtualbox 上运行的 Android 上不起作用?

为啥外部链接在构建后在 phonegap 应用程序上不起作用