小编Aar*_*ron的帖子

对于HTTP直播,iOS AVAsset.duration为零,但适用于渐进式

我有一个iOS应用程序,播放来自HTTP Live流"playlist.m3u8"的视频,我有一个使用AVPlayer创建的自定义播放器.要处理正常的用户交互,例如擦洗,我需要获取视频的持续时间,但出于某些原因,在iOS 4.3上使用xcode 4.0时,当我调用以下代码时,我得到一个CMTime,当转换为秒时给出一个NaN - 我知道它正在做什么,因为CMTimeValue = 0和CMTimeScale = 0,它给出了NaN和CMTimeFlags = 17,这更奇怪.

这是我使用的代码,它根本不复杂:

AVPlayerItem *pItem = mPlayer.currentItem;
AVAsset* asset = pItem.asset;
CMTime d = asset.duration;
double duration = CMTimeGetSeconds(asset.duration);
Run Code Online (Sandbox Code Playgroud)

我还要提一下,在开始播放/擦洗之前,我会监视加载播放列表的状态,以确保它已准备就绪:

[mPlayer addObserver:self forKeyPath:@"currentItem.status" options:0 context:VideoPlaybackViewDelegateStatusContext];
Run Code Online (Sandbox Code Playgroud)

感谢您对此问题的任何帮助.

ios avplayer

11
推荐指数
1
解决办法
8190
查看次数

标签 统计

avplayer ×1

ios ×1