所以我有这个应用程序在哪里播放视频,当你退出应用程序时,我希望用户继续收听视频的音频。我使用MPMoviePlayerController播放视频,它在应用程序中工作得非常好。我在播放视频之前也设置了AVAudioSession并且没有错误。
NSError *audioSessionError;
NSError *activationError;
AVAudioSession *audioSession = [AVAudioSession sharedInstance];
[audioSession setCategory:AVAudioSessionCategoryPlayback error:&audioSessionError];
[audioSession setActive:YES error:&activationError];
我还设置了plist背景模式音频。但是当关闭应用程序时,带有音频的视频都会停止播放。我还导入了AVFoundation框架。
答案 0 :(得分:0)
只需在.plsit文件
中将Application does not run in background
设置为NO
即可
答案 1 :(得分:0)
您需要在plist file.i.e中进行一些更改。
1)将所需的背景模式设置为App播放音频
2)设置应用程序不在后台运行到YES。
NSError *setCategoryErr = nil;
NSError *activationErr = nil;
[[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryPlayback error:&setCategoryErr];
[[AVAudioSession sharedInstance] setActive:YES error:&activationErr];
然后,您需要在AppDelegate中编写这么多代码
现在,您可以在手机屏幕锁定或进入后台时轻松运行音频。
答案 2 :(得分:0)
这段代码对我有用,首先你必须给你的应用程序权限,以便继续在后台播放音乐(在你的.plis中),之后转到所希望的类并实现这段代码,首先是导入和方法播放音乐。
#import <MediaPlayer/MPNowPlayingInfoCenter.h>
#import <MediaPlayer/MPMediaItem.h>
#import <AVFoundation/AVFoundation.h>
---- o ----
-(void) playMusic{
[[AVAudioSession sharedInstance] setDelegate: self];
NSError *myErr;
// Initialize the AVAudioSession here.
if (![[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:&myErr]) {
// Handle the error here.
NSLog(@"Audio Session error %@, %@", myErr, [myErr userInfo]);
}else{
// Since there were no errors initializing the session, we'll allow begin receiving remote control events
[[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
}
//initialize our audio player
audioPlayer = [[MPMoviePlayerController alloc] initWithContentURL:[NSURL URLWithString:@"http://www.cocoanetics.com/files/Cocoanetics_031.mp3"]];
[audioPlayer setShouldAutoplay:NO];
[audioPlayer setControlStyle: MPMovieControlStyleEmbedded];
audioPlayer.view.hidden = YES;
[audioPlayer prepareToPlay];
[audioPlayer play];
}//end playmusic
答案 3 :(得分:0)