AVAudioPlayer连续播放音乐的代码(通到单例)
看不懂在下面留言,我会解释
- (void)audioPlayerDecodeErrorDidOccur:(AVAudioPlayer *)player error:(NSError *)error
{
[selforderToPlayBackGroundMusic];
}
- (void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)player successfully:(BOOL)flag
{
[selforderToPlayBackGroundMusic];
}
-(void)orderToPlayBackGroundMusic
{
[SingleTonTooldefaultMemory].musicIndex++;
if ([SingleTonTooldefaultMemory].musicIndex == [[SingleTonTooldefaultMemory].musicArraycount])
{
[SingleTonTooldefaultMemory].musicIndex =0;
}
NSString * musicName = [[SingleTonTooldefaultMemory].musicArrayobjectAtIndex:[SingleTonTooldefaultMemory].musicIndex];
NSString * musicFilePath = [[NSBundlemainBundle] pathForResource:musicNameofType:@"mp3"]; //创建音乐文件路径
NSURL * musicURL= [[NSURLalloc] initFileURLWithPath:musicFilePath];
AVAudioPlayer * thePlayer = [[AVAudioPlayeralloc] initWithContentsOfURL:musicURLerror:nil];
thePlayer.delegate =self;
[thePlayerplay];
[thePlayersetVolume:1]; //设置音量大小
thePlayer.numberOfLoops =1;//设置音乐播放次数 -1为一直循环
[musicURLrelease];
[SingleTonTooldefaultMemory].thePlayer = thePlayer;
[[SingleTonTooldefaultMemory].playerArrayremoveAllObjects];
[[SingleTonTooldefaultMemory].playerArrayaddObject:thePlayer];
}
-(void)playBackGroundSound
{
[SingleTonTooldefaultMemory].musicArray = [[NSMutableArrayalloc] initWithCapacity:0];
[[SingleTonTooldefaultMemory].musicArrayaddObject:@"初音ミク-World Is Mine"];
[[SingleTonTooldefaultMemory].musicArrayaddObject:@"Avril Lavigne-Girlfrieng"];
[[SingleTonTooldefaultMemory].musicArrayaddObject:@"浜崎あゆみ-evolution"];
[[SingleTonTooldefaultMemory].musicArrayaddObject:@"植物大战僵尸通关歌曲"];
[[SingleTonTooldefaultMemory].musicArrayaddObject:@"初音ミク-炉心融解"];
[[SingleTonTooldefaultMemory].musicArrayaddObject:@"杜岩-千年缘《仙剑奇侠传四》主题曲"];
[[SingleTonTooldefaultMemory].musicArrayaddObject:@"初音ミク-深海少女"];
int k = arc4random()%3;
switch (k)
{
case 0:
[SingleTonTooldefaultMemory].musicIndex =0;
break;
case 1:
[SingleTonTooldefaultMemory].musicIndex =2;
break;
case 2:
[SingleTonTooldefaultMemory].musicIndex =3;
break;
default:
[SingleTonTooldefaultMemory].musicIndex =3;
break;
}
AVAudioSession *audioSession = [AVAudioSessionsharedInstance];
NSError *err = nil;
[audioSession setCategory :AVAudioSessionCategoryPlayAndRecorderror:&err];
if(err)
{
NSLog(@"audioSession: %@ %d %@", [errdomain], [err code], [[erruserInfo] description]);
}
[audioSessionsetActive:YESerror:&err];
err =nil;
if(err)
{
NSLog(@"audioSession: %@ %d %@", [errdomain], [err code], [[erruserInfo] description]);
}
//禁止程序运行时自动锁屏
[[UIApplicationsharedApplication] setIdleTimerDisabled:YES];
NSString * musicFilePath = [[NSBundlemainBundle] pathForResource:[[SingleTonTooldefaultMemory].musicArrayobjectAtIndex:[SingleTonTooldefaultMemory].musicIndex]ofType:@"mp3"]; //创建音乐文件路径
NSURL * musicURL= [[NSURLalloc] initFileURLWithPath:musicFilePath];
AVAudioPlayer * thePlayer = [[AVAudioPlayeralloc] initWithContentsOfURL:musicURLerror:nil];
thePlayer.delegate =self;
[thePlayerplay];
[thePlayersetVolume:1]; //设置音量大小
thePlayer.numberOfLoops =1;//设置音乐播放次数 -1为一直循环
[musicURLrelease];
[[SingleTonTooldefaultMemory].playerArrayaddObject:thePlayer];
[SingleTonTooldefaultMemory].thePlayer = thePlayer;
//播一半的歌曲退出后台后停止
/*MPMusicPlayerController *musicPlayer = [MPMusicPlayerController iPodMusicPlayer];
MPMusicPlaybackState playbackState = musicPlayer.playbackState;
if (playbackState == MPMusicPlaybackStateStopped || playbackState == MPMusicPlaybackStatePaused) {
[musicPlayer play];
} else if (playbackState == MPMusicPlaybackStatePlaying) {
[musicPlayer pause];
}*/
}