我在我的应用程序中播放视频
_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];
}
但它不起作用,它停止背景音乐但不再播放。
答案 0 :(得分:0)
可能是因为当应用程序转到后台时未调用viewWillDisappear
。
此外:
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil];
[[AVAudioSession sharedInstance] setActive:NO error: nil];
一旦激活后,无法避免背景音乐。