首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > 移动开发 >

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

2012-11-23 
AVAudioPlayer连续播放音乐的代码(通到单例)看不懂在下面留言,我会解释- (void)audioPlayerDecodeErrorDid

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
学习一下

热点排行