2013-03-17 75 views
4

我正在使用AVPlayerAVPlayerItem播放实时音频流,并尝试确定当前比特流的比特率。我搜索了网,发现这个帮助: Determening MPMovieController bit-rate确定AVPlayer比特率

通过上述线程的启发,我试图计算它使用下面的代码:

NSArray *logEvents=playerItem.accessLog.events; 
AVPlayerItemAccessLogEvent *event = (AVPlayerItemAccessLogEvent *)[logEvents lastObject]; 
double bitRate=event.observedBitrate; 

但变量bitRate始终为零内检查时,计时器。其实[logEvents count]也总是为零。

你能告诉我这种技术有什么问题吗?

非常感谢。

回答

0

该方法没有问题。检查你的playerItem是否实际加载。直到playerItem被“访问”,accessLog才是零。尝试在播放器变为AVPlayerStatusReadyToPlay后获取accessLogs,您将获得日志。

4

除了Ooops的建议,注册AVPlayerItemNewAccessLogEntryNotification通知以检查比特率可能是明智之举。

由于访问日志数组不符合KVO,所以使用通知将允许您不使用计时器来检查更新,而且您不必担心等待播放器项目准备就绪。如果事件被频繁解雇,你可以选择忽略一些。