ios播放音乐(短音乐,长音乐)

播放短音乐

•  框架
•  AudioToolbox.framework
•  导入头文件
•  #import <AudioToolbox/AudioToolbox.h>
•  创建SoundID音频对象
•  SystemSoundID sound;

•  声明声音 SystemSoundID myID;

•  注册声音
          AudioServicesCreateSystemSoundID ((CFURLRef)fileURL, &myID);
•  播放声音 AudioServicesPlaySystemSound (myID);
•  监听完成事件方法 AudioServicesAddSystemSoundCompletion

•  清除播放sound ID AudioServicesDisposeSystemSoundID (myID);


#import <AudioToolbox/AudioToolbox.h>

@interface YcwViewController : UIViewController
{
    SystemSoundID sound;
}


- (void)changeView:(id)sender
{
    CFBundleRef mainBundle = CFBundleGetMainBundle();
    
    CFURLRef soundFIleURLRef = CFBundleCopyResourceURL(mainBundle, CFSTR("bell"), CFSTR("wav"), NULL);
    
    AudioServicesCreateSystemSoundID(soundFIleURLRef, &sound);
    
    AudioServicesPlaySystemSound(sound);

}



播放长音乐

•  添加框架: – AVFoundation.framework
•  导入头文件
– #import <AVFoundation/AVFoundation.h>
•  定义音频文件对象 – AVAudioPlayer *player;

@interface YcwViewController : UIViewController<AVAudioPlayerDelegate>  //实现协议


在.h文件里申明

@property (strong,nonatomic) AVAudioPlayer *audioPlayer;

- (void)viewDidLoad
{
    [super viewDidLoad];
    audioArray = [NSArray arrayWithObjects:@"不再犹豫",@"一万个舍不得",@"夜曲", nil];
    array_images = [NSArray arrayWithObjects:[UIImage imageNamed:@"111.jpg"],[UIImage imageNamed:@"222.jpg"],[UIImage imageNamed:@"333.jpg"], nil];
    self.title = @"SONY";
    
    audioIndex1 = 0;
    
    self.audioPlayer.delegate = self;    //代理
    
    self.audioPlayer.volume = self.volumeControl.value;   //调节音量
    
  
  
    [NSTimer scheduledTimerWithTimeInterval:.1 target:self
                                   selector:@selector(updateDisplay) userInfo:nil repeats:YES];
  //更新播放进度条,1秒就执行一次updateDisPlay方法
    
    self.modelButton.titleLabel.text = @"顺序";
    
}

- (void)updateDisplay
{
   self.myProgressView.progress = self.audioPlayer.currentTime/self.audioPlayer.duration;
    int current_time = (int)self.audioPlayer.currentTime;
    
    self.currentTime.text = [NSString stringWithFormat:@"%02d:%02d",  current_time/ 60, current_time % 60];      //把时间变成 00:00形式
    
    int duration_time = (int)self.audioPlayer.duration;
    
    self.durationTime.text = [NSString stringWithFormat:@"%02d:%02d",  duration_time/ 60, duration_time % 60];        //把时间变成 00:00形式

}

- (IBAction)adjustVolume:(id)sender {
    
    self.audioPlayer.volume = self.volumeControl.value;      //调节音量
    
}

- (IBAction)playMusic:(id)sender {                                                            //控制播放/暂停
    if([self.musicButton.titleLabel.text isEqualToString:@"播放音乐"])
    {
        [self playAudio:0];
        [self.musicButton setTitle:@"暂停" forState:UIControlStateNormal];
    }
    else if([self.musicButton.titleLabel.text isEqualToString:@"暂停"])
    {
        [self.audioPlayer pause];
        [self.musicButton setTitle:@"播放" forState:UIControlStateNormal];
    
       }
    else
    {
        [self.audioPlayer play];
        [self.musicButton setTitle:@"暂停" forState:UIControlStateNormal];
    }

}



- (IBAction)xiayiqu:(id)sender {                               //下一曲(分为随机模式下一曲/顺序模式下一曲)
    
    if ([self.modelButton.titleLabel.text isEqualToString:@"顺序"]) {
        if (audioIndex1 == audioArray.count-1) {
            
            audioIndex1 = 0;
            [self playAudio:audioIndex1];
        }
        else
        {
            
            audioIndex1 = audioIndex1+1;
            
            [self playAudio:audioIndex1];
            
        }

    }
    
    if ([self.modelButton.titleLabel.text isEqualToString:@"随机"]) {
    
        audioIndex1 = arc4random()%3;
        
        [self playAudio:audioIndex1];
    
    }
    
    
}

- (IBAction)shangyiqu:(id)sender {                  //上一曲(分为随机模式上一曲/顺序模式上一曲)
    
    
    if ([self.modelButton.titleLabel.text isEqualToString:@"顺序"]) {
        if (audioIndex1 == 0) {
            
            audioIndex1 =audioArray.count -1;
            [self playAudio:audioIndex1];
            
        }
        else{
            
            audioIndex1 = audioIndex1-1;
            
            [self playAudio:audioIndex1];
        }
        
    }
    
    if ([self.modelButton.titleLabel.text isEqualToString:@"随机"]) {
        
        audioIndex1 = arc4random()%3;
        
        [self playAudio:audioIndex1];
        
    }

    
    
    
    
}

- (void)playAudio:(int)audioIndex        //真正执行播放音乐
{
    NSString *audioFile = [audioArray objectAtIndex:audioIndex];
    self.songLabel.text = [NSString stringWithFormat:@"正在播放 - %@",audioFile];
    self.myImage.image = [array_images objectAtIndex:audioIndex];
    NSURL *audioFileURL = [NSURL fileURLWithPath:[[NSBundle mainBundle]pathForResource:audioFile ofType:@"mp3"]];
    
    self.audioPlayer = [[AVAudioPlayer alloc]initWithContentsOfURL:audioFileURL error:nil];
    
    [self.audioPlayer play];
    
    
    
    
}
- (void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)player successfully:(BOOL)flag{          //播放一首歌完成后,就自动下一曲
   
    if(audioIndex1 < audioArray.count)
    {
        audioIndex1 ++;
    }
    if (audioIndex1 == audioArray.count) {
        audioIndex1 =0;
    }
    
    [self playAudio:audioIndex1];
    
}

- (IBAction)Changemodel:(id)sender {        //随机/顺序模式
    
    
    
    if ([self.modelButton.titleLabel.text isEqualToString:@"顺序"]) {
        
        [self.modelButton setTitle:@"随机" forState:UIControlStateNormal];
        
    }
    
    
    if ([self.modelButton.titleLabel.text isEqualToString:@"随机"]) {
        [self.modelButton setTitle:@"顺序" forState:UIControlStateNormal];
    }
        
    
    
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值