2011-10-03 89 views
1

是否有可能從用戶的iPod庫播放音頻文件並在播放器達到某個時間點時發生回叫?我需要它是非常準確的,所以簡單地使用currentPlaybackTime這樣的方法可能是不夠的,因爲float等於不準確。我可以使用A - B < Epsilon浮點檢查,但有沒有更好,更準確的方法來實現這一點?音頻播放期間在特定時間回撥

回答

2

如果您可以定位iOS 4.0或更高版本,請嘗試使用AVPlayer。然後,你將能夠使用

- (id)addBoundaryTimeObserverForTimes:(NSArray *)times queue:(dispatch_queue_t)queue usingBlock:(void (^)(void))block 

這需要NSValues爲CMTimes陣列,將每次運行的邊界時代的一個撞塊的內容。 (注意一些行爲,如果你暫停塊內的音頻文件,當你取消暫停時,回調會再次觸發)。

由於CMTime不是浮點數,我認爲這會比反覆檢查currentTime更準確。

+0

輝煌,感謝您的快速回復。這看起來像我需要的方法。 – XSL