AVAudioPlayer «тикает» при остановке или возобновлении - PullRequest
1 голос
/ 20 октября 2010

У меня есть файл .aifc продолжительностью около 2 минут, в который я играю, используя AVAudioPlayer.Когда я посылаю stop, я слышу короткий «тик».Когда я отправляю play, после этого снова слышу галочку.

Я пытался установить volume в 0 до отправки методов play и stop, но это не сработало.

Эта отметка в некоторой степени сопоставима со звуком, который вы слышите, когда вы отключаете динамик от источника звука, но очень короткая (и намного менее громкая, конечно).

Любые идеи о том, как избавиться отклещ?

Ответы [ 2 ]

0 голосов
/ 20 октября 2010

Проблема решена путем установки громкости 0.0 без вызова stop, а затем вскоре после этого вызовом stop.Никакой галочки!

0 голосов
/ 20 октября 2010

Для любой платформы воспроизведения звука на любой платформе вполне нормально производить тики, подобные этой, при остановке и перезапуске звука.Чтобы избежать этой проблемы, вместо внезапной остановки воспроизведения с помощью вызова stop сначала следует уменьшить громкость с 1,0 до 0,0 в течение короткого периода времени (достаточно нескольких миллисекунд), а затем stop или pause,Когда вы возобновите воспроизведение, вы можете повернуть процесс вспять, увеличив громкость с 0,0 до 1,0.

Извините, я не знаю достаточно iPhonistics, чтобы рассказать вам, как выполнить такую ​​операцию на основе таймера.Я удивлен, что библиотека AVAudioPlayer не делает этого уже, но есть другие аудио API, которые я уверен, делают.

Обновление: Если подумать, забудьте об этом.Понижение громкости с помощью таймера - ужасная идея, и она не сработает.Вам понадобится таймер с гораздо более высоким разрешением, чем это возможно, чтобы избежать эффекта понижения, который будет производить серию тиков и всплесков вместо одного.

Используйте другой API.

...