2014-04-17 53 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]; 

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