有没有办法用 AVPlayer 区分直播流和点播文件流?

Spa*_*het 4 iphone cocoa-touch avfoundation live-streaming avplayer

我正在尝试为多种类型的流媒体创建一个更通用的媒体控制器,并希望使 UI 适应流的类型;

  • 当它是点播文件流(即正在流式传输的单个 MP3 文件)时,您应该能够向前和向后查找。因此,搜索滑块应该是可见的。
  • 当它是直播时,无法向前和向后搜索,因此应该隐藏搜索滑块。

有什么方法可以从 AVPlayer(或者可能是 AVPlayerItem 或 AVAsset)确定流的类型是什么?

小智 6

实时视频的持续时间是不确定的

AVPlayer * player = ...;
const BOOL isLive = CMTIME_IS_INDEFINITE([player currentItem].duration);
Run Code Online (Sandbox Code Playgroud)

只有当AVPlayerItem项目状态为时,您才需要检查持续时间AVPlayerItemStatusReadyToPlay


Spa*_*het 1

看来这是不可能的。

然而,人们可以检查直播的持续时间,该持续时间似乎始终高于 33000 秒。但是,该值仍然会波动,并且不希望对此进行检查,因为它可能会导致意外的行为。