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 上不起作用的主要内容,如果未能解决你的问题,请参考以下文章
UIPanGestureRecognizer 在 iPad 上不起作用?