4

我正在构建一个可以同时处理流媒体和非流媒体内容的视频播放器,我希望它可以通过 AirPlay 播放。

我目前正在使用多个AVPlayer实例(每个剪辑一个),它工作正常,但问题是它在使用 AirPlay 时并没有提供非常流畅的体验。切换时界面在每个剪辑之间来回跳转AVPlayer,所以想迁移到使用单片机AVPlayer。这似乎是一项微不足道的任务,但我还没有找到一种方法来做到这一点。

这是我迄今为止尝试过的:

  1. 使用单个AVPlayer和多个AVPlayerItems并在使用replaceCurrentItemWithPlayerItem. 在流式传输- >流式传输剪辑或非流式传输->非流式传输之间切换时效果很好,但AVPlayer似乎不接受流式传输->非流式传输之间的替换,反之亦然。基本上,当我尝试切换时没有任何反应。

  2. 由于与上述相同的原因,使用AVQueuePlayerwith multiple失败。AVPlayerItems

  3. AVPlayer基于AVMutableComposition资产的单个 AVPlayerItem使用单个。这是行不通的,因为流式传输内容是不允许的AVMutableComposition(并且AVURLAssets从流式传输 url 创建的没有任何内容AVAssetTracks,并且它们是必需的)。

那么我有什么遗漏吗?关于如何实现这一点的任何其他建议?

4

1 回答 1

1

我向 Apple 的技术支持提出了这个问题,得到的答案是目前无法避免短跳转回菜单界面,并且 AVPlayer 的任何版本都不支持混合流媒体和非流媒体内容。

完整回复:

这是为了回答您关于如何在通过 AirPlay 播放时为不同的媒体项目切换 AVPlayer 或 AVPlayerItems 时如何避免短跳转回主界面的问题。

这里的问题与 AVPlayer 和 AVQueuePlayer 相同:当前没有 AVPlayer 实例(无论哪个特定类)可以同时播放流媒体和非流媒体内容;也就是说,您不能将 HTTP 实时流媒体(例如 .m3u8)与非流媒体(基于文件的资源,例如 .mp4 文件)混合。

而关于 AVMutableComposition,它不允许流式传输内容。

目前,不支持跨多个项目的“无缝”视频播放。我鼓励您使用 Apple Bug Reporter ( http://developer.apple.com/bugreporter/ )提交此功能的增强请求。

AVComposition 可能是目前“无缝”播放的最佳选择。但是,它具有刚刚描述的不允许流式传输内容的限制。

于 2013-01-28T12:58:09.487 回答