在 iOS 中连续播放 HTML5 音频/视频?

Posted

技术标签:

【中文标题】在 iOS 中连续播放 HTML5 音频/视频?【英文标题】:Continuous HTML5 audio/video playback in iOS? 【发布时间】:2014-06-10 11:58:26 【问题描述】:

我正在开发一个移动网络应用程序,并希望允许在 androidios 中连续播放 HTML5 音频或视频(即排队 YouTube的播放列表> 视频或 Grooveshark 歌曲,并让它们自动连续播放)。

Android 似乎不是问题,但我所阅读的所有内容都表明 Safari 会阻止音频播放,除非它是由用户启动的,并且如果屏幕被锁定则阻止继续播放。

也就是说,Grooveshark 的移动网络应用程序将在我的 iPhone 5 (iOS 7) 中播放整个歌曲播放列表。即使我在另一个 Safari 选项卡中或锁定屏幕,它也会播放下一首歌曲。

所以问题是:他们是怎么做到的?

【问题讨论】:

【参考方案1】:

此代码 (jQuery) 适用于我在 iPhone Safari iOS7 中进行连续播放。即使我的屏幕锁定/其他选项卡它会在第一个结束时更改曲目(请耐心等待新曲目的加载)

<audio id="audio1" src="song1.mp3" controls></audio>
<script type="text/javascript">
$('#audio1').on('ended',function()
    $(this).attr('src','song2.mp3');
    $(this)[0].play();
    );
</script>

我读到有人建议 Safari 阻止音频播放,除非它是由用户启动的。

=> 这是真的,而且是 by design - 目前还没有已知的解决方法(嗯......我已经看到了让它工作的丑陋尝试)。

【讨论】:

美丽。非常感谢。我会试一试。暂时接受答案。 帮助很大!一个插件问题:为什么你需要调用$(this)[0].play(); 而不是$(this).play(); play() 方法不适用于 jQuery 对象。您需要引用实际的音频标签,因此 $(this)[0] 从 $(this) jQuery 对象中选择音频标签 这是可能的,如苹果文档中所述,并在 iPhone4 和 5s 上得到确认。 goo.gl/HzUVWc 旧线程,但我认为它仍然相关并添加我的评论。这已在 iOS 14 中修复并添加(当您在 html/JavaScript 中有播放列表时连续播放)但现在我已经从 14.3 升级到 ios15.3,除非我打开了 safari,否则它不起作用。我可以在我的网络播放器之外的另一个选项卡上。如果我锁定手机,它将不会继续播放我播放列表中的下一首歌曲(之前在 iOS 14 中是这样)。

以上是关于在 iOS 中连续播放 HTML5 音频/视频?的主要内容,如果未能解决你的问题,请参考以下文章

FFmpeg学习6:视音频同步

iOS:HTML5 视频,在全屏状态下连续播放

怎么让 html5 的 video标签在 ios播放

FFmpeg学习5:多线程播放视音频

HTML5在android WebView中没有视频只有音频播放

HTML5的在线视频播放方案