2013-03-17 76 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,所以使用通知將允許您不使用計時器來檢查更新,而且您不必擔心等待播放器項目準備就緒。如果事件被頻繁解僱,你可以選擇忽略一些。