2014-04-17 50 views
0

我玩视频的背景音乐在我的应用程序如何暂停在IOS

_player = [[MPMoviePlayerController alloc] init]; 
_player.view.frame = CGRectMake(0, 60, frame.size.width,frame.size.height - 130); 
_player.movieSourceType = MPMovieSourceTypeStreaming; 
_player.fullscreen = NO; 
[_player setScalingMode:MPMovieScalingModeAspectFill]; 
_player.controlStyle = MPMovieControlStyleNone; 
[_player setContentURL:[NSURL URLWithString:mediaUrl]]; 
[_player play]; 

,我必须做一些配置 -

1 - 如果设备是沉默,然后播放视频与全卷。 2-如果设备在其他应用程序中播放任何音乐,则必须暂停背景歌曲并在视频播放完成后再次播放。

所以我搜索了很多,然后发现以下解决方案 -

对于1

[[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryPlayback error: nil]; 

其完美的工作,当设备被silent.then它在最大音量播放。

对于2 - 无论背景歌曲和视频音频播放两个,我做以下 -

- (void)viewWillAppear:(BOOL)animated { 
    [[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryPlayback error: nil]; 
    [[AVAudioSession sharedInstance] setActive:YES error:nil]; 
} 

-(void)viewWillDisappear:(BOOL)animated { 
    [[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryPlayback error: nil]; 
    [[AVAudioSession sharedInstance] setActive:NO error:nil]; 
} 

但其没有工作,其回采的背景音乐,但不会再播放。

回答

0

也许是因为viewWillDisappear在应用程序转到后台时未被调用。

此外:

[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil]; 
[[AVAudioSession sharedInstance] setActive:NO error: nil]; 

不工作,以避免背景音乐一旦被激活。