標籤:1.0 path one 並且 ret keyword res uicolor ica
1、步驟一:在Info.plist中,添加"Required background modes"鍵,value為:App plays audio
或者:
步驟二:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
// Override point for customization after application launch.
NSError *setCategoryErr = nil;
NSError *activationErr = nil;
[[AVAudioSession sharedInstance]
setCategory: AVAudioSessionCategoryPlayback
error: &setCategoryErr];
[[AVAudioSession sharedInstance]
setActive: YES
error: &activationErr];
self.window.backgroundColor = [UIColor whiteColor];
[self.window makeKeyAndVisible];
return YES;
}
步驟三:將以下代碼添加到appDelegate檔案中的- (void)applicationDidEnterBackground:(UIApplication *)application函數,也可添加到在具體類中註冊的應用進入後台後的通知方法
- (void)applicationDidEnterBackground:(UIApplication *)application{
UIApplication* app = [UIApplication sharedApplication];
__block UIBackgroundTaskIdentifier bgTask;
bgTask = [app beginBackgroundTaskWithExpirationHandler:^{
dispatch_async(dispatch_get_main_queue(), ^{
if (bgTask != UIBackgroundTaskInvalid)
{
bgTask = UIBackgroundTaskInvalid;
}
});
}];
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
dispatch_async(dispatch_get_main_queue(), ^{
if (bgTask != UIBackgroundTaskInvalid)
{
bgTask = UIBackgroundTaskInvalid;
}
});
});
}
接下來就是在播放頁面進行播放了:
先加入代理:AVAudioPlayerDelegate
//從budle路徑下讀取音頻檔案 這個檔案名稱是你的歌曲名字,mp3是你的音頻格式 NSString *string = [[NSBundle mainBundle] pathForResource:@"has_consult" ofType:@"mp3"]; //把音頻檔案轉換成url格式 NSURL *url = [NSURL fileURLWithPath:string]; //初始化音頻類 並且添加播放檔案 NSError *error; avAudioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:&error]; //設定初始音量大小 // avAudioPlayer.volume = 1; //設定音樂播放次數 -1為一直迴圈 avAudioPlayer.numberOfLoops = -1; //預播放 [avAudioPlayer prepareToPlay]; NSLog(@"%ld",(long)error.code);//播放-(void)play{ [avAudioPlayer play]; }//停止-(void)stop{ avAudioPlayer.currentTime = 0; //當前播放時間設定為0 [avAudioPlayer stop]; }
iOS 實現後台 播放音樂聲音 AVAudioPlayer