2015-09-22 1 views
0

Если я создал объект AVAudioPlayer, задайте его свойства под названием prepareToPlay() и вызвал метод play(), но затем измените свойство моего объекта AVAuidioPlayer, мне нужно вызвать prepareToPlay() еще раз?Когда использовать метод AVAudioPlayer prepareToPlay()

+0

Я думаю, вы должны назвать это !!!! –

+0

Вы изменяете свойство до завершения воспроизведения? – antonio

+0

@antonio, извините, это хороший вопрос, воспроизведение происходит в бесконечном цикле, поэтому воспроизведение не закончилось, когда я изменяю свойство. Если бы он остановился, я знаю, что мне придется снова вызвать prepareToPlay(). –

ответ

1

Нет, вы этого не сделаете. Это из раздела обсуждение в классе ссылки для метода play:

Вызов этого метода неявно вызывает метод prepareToPlay если аудио проигрыватель не готов играть.

Кроме того, это является абстрактным для этого метода:

Воспроизведение звука асинхронно.

Когда мы смотрим на свойства AVAudioPlayer, мы можем видеть, что не из них имеют явный атрибут о атомарность, что делает их atomic по умолчанию. Хотя воспроизведение является асинхронным, ваше воспроизведение не будет затронуто изменениями свойств (в то время как асинхронная операция будет блокировать эти свойства). Кроме того, этот метод неявно вызывает prepareToPlay, даже если вы этого не сделаете сами.