读书人

AVAudioPlayer接续播放音乐的代码(通

发布时间: 2012-11-23 00:03:43 作者: rapoo

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

}*/

}


1楼zhimibuhui1884天前 10:02
学习一下

读书人网 >移动开发

热点推荐