Несколько экземпляров AudioStreamer, если слишком быстро нажать в представлении таблицы - PullRequest
0 голосов
/ 01 февраля 2012

У меня проблемы с AudioStreamer, который сводит меня с ума. У меня есть таблица с песнями с удаленного сервера. Когда я нажимаю на песню, она воспроизводится нормально, но если я нажимаю слишком быстро, я получаю несколько экземпляров AudioStreamer, воспроизводящих разные песни.

Я слышал, что создание AudioStreamer синглтоном решит эту проблему, но я пытался это делать, и он слишком часто зависал. Кто-нибудь сталкивался с этой проблемой и нашел решение?

Спасибо.

ОБНОВЛЕНИЕ:

Решением этой проблемы было удаление этой строки из метода - (void) stop. Также измените все, что говорит состояние на self.state

if (state == AS_WAITING_FOR_DATA || state == AS_STARTING_FILE_THREAD)
возвращение;

Ответы [ 2 ]

3 голосов
/ 11 февраля 2012

Решением этой проблемы было удаление этой строки из метода - (void) stop.Также измените все, что говорит state, на self.state

if (state == AS_WAITING_FOR_DATA || state == AS_STARTING_FILE_THREAD) return;

0 голосов
/ 01 февраля 2012

Я нашел решение в другом посте. Но на всякий случай вот что я сделал не так.

Еще один пост здесь в stackoverflow указал на следующую ссылку. Я следую решению в этой ссылке раньше, но не полностью. Я пропустил самую важную часть, которая была ниже кода.

https://github.com/mattgallagher/AudioStreamer/issues/26

"Переменная pausedByInterruption необходима, поскольку мы хотим возобновить воспроизведение только после прерывания, если звук был приостановлен из-за прерывания. Поэтому для ivar pausedByInterruption должно быть установлено значение NO в следующих методах: pause, start , stop и initWithUrl . "

Позвольте мне повторить, убедитесь, что вы выполняете эту часть "ivar pausedByInterruption должно быть установлено в NO следующими способами: pause , start , stop и initWithUrl . "

После этого моя проблема была решена.

...