Остановка AVAudioPlayer из любого места в приложении - PullRequest
0 голосов
/ 17 июля 2009

У меня есть AVAudioPlayer, назовем его player1, который запускается в конкретном UIViewController, назовем его myController1. Я установил numberOfLoops на -1, чтобы аудио зацикливалось бесконечно. Я настроил протокол так, чтобы myController1 выступал в качестве делегата для AVAudioPlayer, чтобы я мог запускать audioPlayerDidFinishPlaying. Я также написал подпрограмму, чтобы остановить игрока из myController1. Все это работает.

Предположим, у меня есть дополнительные UIViewController, скажем, myController2 и myController3. Я прочесал форумы и документацию Apple, но не могу найти способ остановить проигрыватель внутри любого из этих дополнительных контроллеров. Является ли это возможным? (Я не хочу верить, что это не так.) Если да, могу ли я получить некоторые подсказки?

Мне семьдесят лет, поэтому когда дело доходит до изучения новых вещей, я как старая собака. Я программировал 8 и 16-битные микросхемы для управления производственными процессами на С в течение тридцати лет. Объектно-ориентированное программирование - это совершенно новый шарик воска, но я учусь с мячом.

Большое спасибо за любую помощь.

Dan

1 Ответ

0 голосов
/ 18 июля 2009

Вы можете использовать Singleton для предоставления доступа к экземпляру AVAudioPlayer. Это может включать создание класса со статическим членом (AVAudioPlayer) и метод класса для доступа к статическому члену. myController2 и myController3 могут вызывать метод класса следующим образом:

[[MyPlayer player] stop];

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...