我正在开发一个应用程序,我将使用ChromeCast设备连接到T.V,为此我已经在我的项目中使用了GoogleCast FrameWork,
当我的应用程序进入后台时,我遇到了问题
在此方法中编写片段代码以调用方法来静音音频
- (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 :(得分:0)
您正在HomeViewController
app delegate方法中创建applicationDidEnterBackground
的新实例。您需要将muteAudio
消息发送到正在运行的HomeViewController
实例。
为此,最好的解决方案是使用NSNotificationCenter
。
在HomeViewController的viewDidLoad
或viewWillAppear
方法中,使用以下行:
[[NSNotificationCenter defaultCenter] addObserver: self
selector: @selector(muteAudio)
name: UIApplicationDidEnterBackgroundNotification
object: nil];
当应用程序进入后台时,这将自动调用muteAudio方法。
详细了解NSNotificationCenter here。
详细了解应用程序状态通知here。