如何在ios中暂停背景音乐

时间:2014-04-17 15:35:36

标签: ios video mpmovieplayercontroller audio-player

我在我的应用程序中播放视频

_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];

当设备静音时,它的工作非常完美。然后它以全音量播放。

对于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];
}

但它不起作用,它停止背景音乐但不再播放。

1 个答案:

答案 0 :(得分:0)

可能是因为当应用程序转到后台时未调用viewWillDisappear

此外:

[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil];
[[AVAudioSession sharedInstance] setActive:NO error: nil];
一旦激活后,

无法避免背景音乐。