使用AVAudioPlayer播放音乐

要使用AVAudioPlayer播放音乐文件,首先要往项目中导入AVFoundation.framework,然后在具体的ViewController内实现"AVAudioPlayerDelegate"协议方法。具体实现代码如下:点击button,开始播放音乐。

#import "ViewController.h"
/**
 *  导入框架
 */
#import <AVFoundation/AVFoundation.h>
/**
 *  添加代理
 */
@interface ViewController ()<AVAudioPlayerDelegate>
{
    AVAudioPlayer *audioPlayer;
}
@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    //找到音乐的播放路劲
    NSString *path=[[NSBundle mainBundle]pathForResource:@"hightemper1" ofType:@"mp3"];
    NSData *musicData=[NSData dataWithContentsOfFile:path];
    audioPlayer=[[AVAudioPlayer alloc]initWithData:musicData error:nil];
    audioPlayer.delegate=self;
    UIButton *btn=[[UIButton alloc]initWithFrame:CGRectMake(110, 200, 100, 44)];
    [btn setTitle:@"播放" forState:UIControlStateNormal];
    [btn addTarget:self action:@selector(startPlay) forControlEvents:UIControlEventTouchUpInside];
    btn.backgroundColor=[UIColor redColor];
    [self.view addSubview:btn];
    // Do any additional setup after loading the view, typically from a nib.
}


-(void)startPlay{
    if (audioPlayer.prepareToPlay) {
        //准备日就绪,开始播放
        [audioPlayer play];
    }
}
/**
 *  代理方法的实现
 */

-(void)audioPlayerBeginInterruption:(AVAudioPlayer *)player{
    NSLog(@"播放中断");
}

-(void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)player successfully:(BOOL)flag{
    NSLog(@"播放完成");
}
-(void)audioPlayerEndInterruption:(AVAudioPlayer *)player withOptions:(NSUInteger)flags{
    NSLog(@"中断事件结束----->一般在此方法内重新播放音乐");
    if (flags == AVAudioSessionInterruptionOptionShouldResume) {
        [audioPlayer play];
    }
}


你可能感兴趣的:(使用AVAudioPlayer播放音乐)