audioPlayerDidFinishPlaying, не будучи названным во время прокрутки UITableView

Одно из моих представлений является a UITableView который действует как делегат к AVAudioPlayer и эта таблица по существу играет звуки при выборе определенной строки с опциями повторить звук после его законченного проигрывания.

Однако я заметил что, если я выбираю ячейку с повторением НА для определенного звука и затем просматриваю путем прокрутки UITableView для выбора другого звука это не будет звонить audioPlayerDidFinishPlaying (и поэтому не повторение), пока прокрутка не остановилась. Как только я прекращаю прокручивать, это повторяется очень хорошо. Или если я не прокручиваю вообще, это повторяется очень хорошо.

Что могло происходить во время прокрутки что UITableView больше не действует как делегат и вызов audioPlayerDidFinishPlaying? Какие-либо мысли?

1
задан iwasrobbed 13 June 2010 в 20:21
поделиться

1 ответ

Хотя в документации это четко не указано, я подозреваю, что вызов audioPlayerDidFinishPlaying откладывается в основном потоке (выделено мной жирным шрифтом):

AVAudioPlayer класс позволяет вам играть звук в любом аудиоформате, доступном в iPhone OS. Вы используете делегата для обрабатывать прерывания (например, входящий телефонный звонок) и обновить пользовательский интерфейс, когда звук закончил играть . Методы делегата для класса AVAudioPlayer являются описано в AVAudioPlayerDelegate Справочник по протоколу.

Пока есть события для обработки, например события прокрутки, вызов ожидает в основном потоке.

2
ответ дан 2 September 2019 в 23:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: