AVFoundation IOS: проигрывание фоновой музыки - PullRequest
1 голос
/ 06 октября 2011

Я разрабатываю приложение для iPhone IOS, которое включает в себя включение фоновой музыки. Для этой цели я решил выбрать AVFoundation и AVAudioPlayer.

Итак, у меня есть два контроллера представления и один контроллер nsobject, который на самом деле является музыкальным контроллером. Все методы с AVFramework написаны там:

//  AVMusicController.h

#import <AVFoundation/AVFoundation.h>

@interface AVMusicController : NSObject <AVAudioPlayerDelegate>
{
    AVAudioPlayer *avMusicPlayer;
}

@property(nonatomic, retain) AVAudioPlayer *avMusicPlayer;

-(void)playMusic;
-(void)muteMusic;
-(void)unMuteMusic;

@end

И реализация этого класса.

Таким образом, первый контроллер представления включает фоновую музыку, когда представление загружается (мне удалось это сделать), и у него есть кнопка для перехода к другому представлению, которое контролируется вторым контроллером представления. Второй имеет кнопку для отключения музыки. Итак, вот моя проблема: я загружаю AVMusicController во второй контроллер представления, делаю nsobject во втором файле представления xib, меняю его контроллер на контроллер AVMusic и подключаюсь к владельцу файла.

Но когда я пишу код:

-(IBAction)buttonPressed:
{    
    [self.avMusicController muteMusic];
}

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

Пожалуйста, предложите мне любые идеи по этой проблеме. Спасибо за внимание.

Если какая-то часть моего вопроса смущает вас, пожалуйста, дайте мне знать, и я изменю это. Заранее спасибо.

1 Ответ

1 голос
/ 07 октября 2011

Вы можете использовать NotificationCenter вместо соединений класса контроллера. В основном добавьте наблюдателя в свой первый контроллер представления, и когда пользователь коснется кнопки отключения звука, отправьте уведомление через центр уведомлений в ваш первый просмотр.

Вы также можете проверить этот вопрос. Objective-C - где разместить NSNotificationCenter?

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