2010-06-13 45 views
1

我的觀點之一是UITableView,它作爲AVAudioPlayer的代表,並且當您選擇某個具有選項的特定行以在完成播放後重復播放聲音時,該表實質上會播放聲音。但是,我注意到如果我選擇了一個單元格,併爲某個聲音重複開啓,然後滾動瀏覽UITableView以選擇不同的聲音,直到滾動停止後纔會調用audioPlayerDidFinishPlaying(因此不會重複)。只要我停止滾動,它就重複得很好。或者如果我根本不滾動,它會重複很好。audioPlayerDidFinishPlaying在滾動過程中沒有被調用UITableView

在滾動過程中可能發生什麼情況,UITableView不再作爲代理人並調用audioPlayerDidFinishPlaying?有什麼想法嗎?

回答

2

即使文檔中沒有明確說明的話,我懷疑audioPlayerDidFinishPlaying調用主線程延期(由我大膽的一句):

的AVAudioPlayer類可以讓你在任何音頻播放 聲音格式可在 iPhone操作系統。您使用 處理中斷的代理(例如 來電)和更新 用戶界面,當聲音有 完成播放。 AVAudioPlayer類的代理方法 是在AVAudioPlayerDelegate 協議參考中描述的 。

只要有一些要處理的事件,如滾動事件,該調用正在主線程上等待。

+0

好,趕上,謝謝洛朗! – iwasrobbed 2010-06-14 12:38:11

相關問題