Есть ли способ, которым я могу сгруппировать три класса? - PullRequest
2 голосов
/ 17 июля 2011

Что я хочу сделать, так это, во-первых, у меня много классов, все они имеют одинаковую музыку повсюду, как я сказал в приложении делегаты. Bool закончила запуск метода.Но в моих последних 3 классах я хочу другую музыку, честно говоря, я вставил следующие строки кода:

 [(Smart2AppDelegate *)[UIApplication sharedApplication].delegate pauseAudioPlayer];
[(Smart2AppDelegate *)[UIApplication sharedApplication].delegate newAudioPlayer];

И в моем приложении делегат:

 -(void)newAudioPlayer {

NSString *music = [[NSBundle mainBundle]
                   pathForResource:@"win" ofType:@"m4a"];
audio.delegate = self;
self.audio = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:music] error:NULL];

[audio play];
audio.numberOfLoops = -1;
     }

 -(void)pauseAudioPlayer {

[audio pause];
 }

Так что это работает,всякий раз, когда я перехожу к этому виду, он меняет музыку, позволяет вызывать этот вид, вид x.Теперь из этого представления x я могу перейти только к двум другим представлениям, например, я могу перейти на информационную страницу, и есть кнопка «Назад», которая ведет к этому представлению x, и то же самое с призовой страницей.Но когда я возвращаюсь к представлению x, музыка начинается с самого начала, когда на этих трех уроках я хочу, чтобы они все зацикливались, а не шли с начала, потому что это звучит неловко.Причина проста, потому что я положил его в viewDidLoad.Но как я могу это сделать, я думал о том, как на самом деле сгруппировать классы и добавить туда метод avaudioplayer.

1 Ответ

0 голосов
/ 17 августа 2011

Здесь у вас есть возможный подход:

  1. Измените механизмы музыка + звуки в отдельный класс, то есть что-то вроде Smart2AudioPlayer.
  2. Публикуйте необходимые методы: play, pause, возобновите работу, чтобы вы могли использовать аудиопроигрыватель из любого места.
  3. В каждом методе viewDidLoad вызывайте аудиопроигрыватель и передавайте параметр, чтобы указать, кто является отправителем (кто хочет, чтобы звук воспроизводился), и предпочтения.указание, хотите ли вы продолжить воспроизведение текущей групповой песни (см. ниже) или начать ее заново.
  4. Реализуйте необходимую логику в своем аудиоплеере, чтобы позволить определенным группам классов быть связанными вместе.Таким образом, когда вы играете песню из класса, принадлежащего группе, и другой класс из той же группы запрашивает музыку для воспроизведения, вы не запустите песню снова, вы просто ничего не делаете.

Надеюсь, это поможет

...