确定AVPlayer比特率

时间:2013-03-17 03:45:57

标签: iphone ios objective-c audio-streaming avplayer

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

受上述线程的启发,我尝试使用以下代码计算它:

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

但在计时器内检查时,变量bitRate始终为零。

实际上[logEvents count]也始终为零。

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

非常感谢。

2 个答案:

答案 0 :(得分:4)

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

由于访问日志数组不符合KVO,因此使用该通知将允许您不使用计时器来检查更新,您不必担心等待播放器项目准备就绪。如果过于频繁地触发事件,您可以选择忽略某些事件。

答案 1 :(得分:0)

该方法没有错。检查你的playerItem是否实际加载。 accessLog为nil,直到playerItem被访问为止。在玩家成为AVPlayerStatusReadyToPlay并尝试获取日志后,尝试获取accessLog。