2014-12-15 3 views
1

Я работаю над приложением, в котором я буду подключаться к телевизору с помощью CHROMECAST устройства, для достижения этой цели я использовал GoogleCast FrameWork в моем проекте,делегатов CHROMECAST не вызывается, когда приложение работает в фоновом режиме

I я столкнулся с проблемой, когда мое приложение идет на фон

Обращается кусок кода в этом методе для вызова метода для отключения звука

- (void)applicationDidEnterBackground:(UIApplication *)application { 

    HomeViewController *lHomeViewController = [[HomeViewController alloc] init]; 

    _mediaControlChannel = [[GCKMediaControlChannel alloc] init]; 

    [lHomeViewController muteAudio]; 

} 

вызывает метод в контроллере домашнего просмотра, где, в котором я написал код ниже

-(void) muteAudio { 

    [self.deviceManager setMuted:YES]; 

} 

Но звук не отключен, и он не вызывает метод делегата ниже.

- (void)mediaControlChannelDidUpdateStatus:(GCKMediaControlChannel *)mediaControlChannel 

Пожалуйста, предложите мне

+0

Вы создаете новый экземпляр HomeViewController в applicationDidEnterBackGround. Вам необходимо отправить сообщение muteAudio в исполняемый экземпляр HomeViewController. – ZeMoon

ответ

0

Вы создаете новый экземпляр HomeViewController в методе делегата applicationDidEnterBackground приложения. Вам необходимо отправить сообщение muteAudio на рабочий экземпляр HomeViewController.

Для этого лучшим решением было бы использовать NSNotificationCenter.

В вашей HomeViewController в viewDidLoad или viewWillAppear метод, используйте следующую строку:

[[NSNotificationCenter defaultCenter] addObserver: self 
             selector: @selector(muteAudio) 
              name: UIApplicationDidEnterBackgroundNotification 
              object: nil]; 

Это будет автоматически вызывать метод muteAudio, когда приложение входит в фон.

Подробнее о NSNotificationCenter here.

Подробнее о уведомлениях о состоянии приложения here.

Смежные вопросы