当前位置:编程学习 > wap >>

AVAudioPlayer连续播放音乐的代码(通到单例)

看不懂在下面留言,我会解释


- (void)audioPlayerDecodeErrorDidOccur:(AVAudioPlayer *)player error:(NSError *)error
{
    [self orderToPlayBackGroundMusic];
}
- (void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)player successfully:(BOOL)flag
{
   
    [self orderToPlayBackGroundMusic];
   
}
-(void)orderToPlayBackGroundMusic
{

    [SingleTonTool defaultMemory].musicIndex++;
    if ([SingleTonTool defaultMemory].musicIndex == [[SingleTonTool defaultMemory].musicArray count])
    {
        [SingleTonTool defaultMemory].musicIndex = 0;
    }  www.zzzyk.com
    NSString * musicName = [[SingleTonTool defaultMemory].musicArray objectAtIndex:[SingleTonTool defaultMemory].musicIndex];
  
  
    NSString * musicFilePath = [[NSBundle mainBundle] pathForResource:musicName ofType:@"mp3"];      //创建音乐文件路径
 
    NSURL * musicURL= [[NSURL alloc] initFileURLWithPath:musicFilePath];
    AVAudioPlayer * thePlayer  = [[AVAudioPlayer alloc] initWithContentsOfURL:musicURL error:nil];
    thePlayer.delegate = self;
    [thePlayer play];
    [thePlayer setVolume:1];   //设置音量大小
    thePlayer.numberOfLoops = 1;//设置音乐播放次数  -1为一直循环
   
    [musicURL release];
   
    [SingleTonTool defaultMemory].thePlayer = thePlayer;
    [[SingleTonTool defaultMemory].playerArray removeAllObjects];
    [[SingleTonTool defaultMemory].playerArray addObject:thePlayer];
   
   
}
-(void)playBackGroundSound
{
    [SingleTonTool defaultMemory].musicArray = [[NSMutableArray alloc] initWithCapacity:0];
   
    [[SingleTonTool defaultMemory].musicArray addObject:@"初音ミク-World Is Mine"];
    [[SingleTonTool defaultMemory].musicArray addObject:@"Avril Lavigne-Girlfrieng"];
    [[SingleTonTool defaultMemory].musicArray addObject:@"浜崎あゆみ-evolution"];
    [[SingleTonTool defaultMemory].musicArray addObject:@"植物大战僵尸 通关歌曲"];
    [[SingleTonTool defaultMemory].musicArray addObject:@"初音ミク-炉心融解"];
    [[SingleTonTool defaultMemory].musicArray addObject:@"杜岩-千年缘《仙剑奇侠传四》主题曲"];
    [[SingleTonTool defaultMemory].musicArray addObject:@"初音ミク-深海少女"];
   
   
    int k = arc4random()%3;
   
    switch (k)
    {
        case 0:
            [SingleTonTool defaultMemory].musicIndex = 0;
            break;
        case 1:
            [SingleTonTool defaultMemory].musicIndex = 2;
            break;
        case 2:
            [SingleTonTool defaultMemory].musicIndex = 3;
            break;
           
        default:
            [SingleTonTool defaultMemory].musicIndex = 3;
            break;
    }
   
    AVAudioSession *audioSession = [AVAudioSession sharedInstance];
    NSError *err = nil;
    [audioSession setCategory :AVAudioSessionCategoryPlayAndRecord error:&err];
    if(err)
    {
        NSLog(@"audioSession: %@ %d %@", [err domain], [err code], [[err userInfo] description]);
       
    }
    [audioSession setActive:YES error:&err];
    err = nil;
    if(err)
    {
        NSLog(@"audioSession: %@ %d %@", [err domain], [err code], [[err userInfo] description]);
       
    }
   
    //禁止程序运行时自动锁屏
    [[UIApplication sharedApplication] setIdleTimerDisabled:YES];
   
   
    NSString * musicFilePath = [[NSBundle mainBundle] pathForResource:[[SingleTonTool defaultMemory].musicArray objectAtIndex:[SingleTonTool defaultMemory].musicIndex] ofType:@"mp3"];      //创建音乐文件路径
   NSURL * musicURL= [[NSURL alloc] initFileURLWithPath:musicFilePath];
   
    AVAudioPlayer * thePlayer  = [[AVAudioPlayer alloc] initWithContentsOfURL:musicURL error:nil];
    thePlayer.delegate = self;
    [thePlayer play];
    [thePlayer setVolume:1];   //设置音量大小
    thePlayer.numberOfLoops = 1;//设置音乐播放次数  -1为一直循环
   
    [musicURL release];
    [[SingleTonTool defaultMemory].playerArray addObject:thePlayer];
    [SingleTonTool defaultMemory].thePlayer = thePlayer;
   
   
   
   
    //播一半的歌曲退出后台后停止
    /*MPMusicPlayerController *musicPlayer = [MPMusicPlayerController iPodMusicPlayer];
     MPMusicPlaybackState playbackState = musicPlayer.playbackState;
     if (playbackState == MPMusicPlaybackStateStopped || playbackState == MPMusicPlaybackStatePaused) {
     [musicPlayer play];
     } else if (playbackState == MPMusicPlaybackStatePlaying) {
     [musicPlayer pause];
     }*/
   
}

补充:移动开发 , 其他 ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,