[英]In IOS Two views one view displays details other view is playing music Lock screen controls are not working when we are in first view
在IOS中有兩個視圖。嵌入在導航控制器中的第一個視圖在單擊任何元素時顯示詳細信息(TableView),第二個視圖播放特定歌曲的音樂。在第二個視圖中,並且應用移至鎖定屏幕播放控件的背景時,但是在播放音樂時,我先移至第一視圖,然后在鎖定屏幕中播放控件不起作用。
我正在使用的代碼在SecondViewController中
-(void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
[[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
[self becomeFirstResponder];
}
在viewDidLoad中
AVAudioSession *sharedAVSession = [AVAudioSession sharedInstance];
if ([utils getOSVersion] >= 6.0)
{
NSLog(@"AV - going through notification path");
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(handleAVASInterruption:) name:AVAudioSessionInterruptionNotification object:nil];
}
NSError *err;
[sharedAVSession setActive:YES withOptions:AVAudioSessionInterruptionOptionShouldResume error:&err];
壓倒一切
- (BOOL)canBecomeFirstResponder {
return YES;
}
和
- (void)remoteControlReceivedWithEvent:(UIEvent *)event {
NSLog(@“REMOTE EVENT!");
if ( event.type == UIEventTypeRemoteControl) {
switch (event.subtype) {
case UIEventSubtypeRemoteControlTogglePlayPause:
break;
case UIEventSubtypeRemoteControlPreviousTrack:
[self goToPreviousTrack];
break;
case UIEventSubtypeRemoteControlNextTrack:
[self goToNextTrack];
break;
case UIEventSubtypeRemoteControlPlay:
NSLog(@"in UIEventSubtypeRemoteControlPlay");
[self resumeMusic];
break;
case UIEventSubtypeRemoteControlPause:
NSLog(@"in UIEventSubtypeRemoteControlPause ");
[self pauseClicked];
break;
case UIEventSubtypeRemoteControlStop:
// TODO
break;
default:
break;
}
}
}
請幫助我。謝謝
查看viewWillDisappear中的代碼。 是否關閉監聽遠程控制事件? 在這種情況下,這就是您切換到另一個視圖時發生的情況。
如果不存在該視圖,則需要確保音頻播放器在附近;該視圖消失時,該視圖不會停止監聽遠程事件;如果遠程事件到達,則該視圖可以正確響應。
這可能包括確保視圖控制器保持活動狀態。 這可能意味着您必須確保在切換到另一個視圖時不會釋放它,並且在切換回播放器視圖時不會創建新的視圖控制器。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.