пауза / запуск AVAudioPlayer без сбоев - PullRequest
4 голосов
/ 22 ноября 2010

Я воспроизводю длинный аудиофайл (около 20 секунд) с помощью AVAudioPlayer.Мне нужно иметь возможность сделать паузу и начать в середине файла.Когда я делаю паузу или начинаю во время воспроизведения звука, появляется заметный «всплеск», когда звук начинается или заканчивается.

Мне удалось улучшить ситуацию, выполнив очень быстрое затухание (установив громкость несколько раз, используя executeSelector: withObject: afterDelay . Но звук все еще немного глючитс этой техникой.

Есть ли стандартный способ запустить / приостановить AVAudioPlayer без этих глюков?

Ответы [ 2 ]

2 голосов
/ 30 ноября 2010

Попробуйте отправить -prepareToPlay вашему объекту AVAudioPlayer, когда он приостановлен.Это предварительно загрузит звук.

Если это не сработает, попробуйте ускорить затухание, уменьшив задержку в executeSelector: withObject: afterDelay.Сойти с ума, миллисекунды.

Если это тоже не сработает, попробуйте использовать более чистый, высококачественный аудиофайл (без посторонних фоновых шумов)

Если ничего из этого не работает, пожалуйста, объяснитеаудиофайл в вашем приложении используется более подробно.

0 голосов
/ 30 ноября 2010

Используйте один из API нижнего уровня (Audio Queues или RemoteIO).Плавно увеличивайте коэффициент умножения от 1,0 до 0,0 для некоторого количества образцов ИКМ.Используйте этот коэффициент для коэффициента усиления сэмплирования в вашем собственном звуковом микшере DSP.Рамп с 0,0 до 1,0 при перезагрузке.Линейная или полусинусинусная кривая типа "легкость входа / легкость".

...