播放音频声音文件

iphone开发中播放声音文件主要使用AVAudioPlayer 类,它的功能非常强大支持播放音频的格式也非常的多,我们可以把它看成一个高级的音乐播放器,它支持的播放格式有
■ AAC
■ AMR(AdaptiveMulti-Rate, aformatforspeech)
■ ALAC(AppleLossless)
■ iLBC(internetLowBitrateCodec, anotherformatforspeech)
■ IMA4(IMA/ADPCM)
■ linearPCM(uncompressed)
■ µ-lawanda-law
■ MP3(MPEG-1audiolayer3

今天主要介绍一下播放mp3 . 




       AVAudioPlayer 是 AVFoundation.framework 中定义的一个类,所以使用要先在工程中引入AVFoundation.framework 如图所示点击"+"号将AVFoundation导入。




       

 将音频文件放入资源文件夹中





下面我开始介绍代码中如何调用
AVAudioPlayer 播放音频文件

  
声明类
#import "playSoundViewController.h"
#import <UIKit/UIKit.h>
#import <AVFoundation/AVFoundation.h>
@interface playSoundViewController : UIViewController {
    
    IBOutlet UIButton * playSound;//播放音乐  
    IBOutlet UIButton * playPause;//播放暂停  
    IBOutlet UIButton * playStop;//播放停止  
    //定义一个声音的播放器
    AVAudioPlayer *player;
}

-(IBAction)playSoundPressed:(id)pressed;
-(IBAction)playPausePressed:(id)pressed;
-(IBAction)playStopPressed:(id)pressed;
@end
 
@implementation playSoundViewController

- (void)dealloc
{
    [super dealloc];
    //程序的严谨性 在显示对象关闭后把相应的对象清空
    //时刻谨记
    [playSound release];
    [player release];
}

- (void)didReceiveMemoryWarning
{
    // Releases the view if it doesn't have a superview.
    [super didReceiveMemoryWarning];
    
    // Release any cached data, images, etc that aren't in use.
}

#pragma mark - View lifecycle


// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
- (void)viewDidLoad
{
    [super viewDidLoad];
    //在这里实现声音的播放代码
    //找到mp3在资源库中的路径 文件名称为sound 类型为mp3
    NSString *path = [[NSBundle mainBundle] pathForResource:@"sound" ofType:@"mp3"];
    //在这里判断以下是否能找到这个音乐文件
    if (path) {
        //从path路径中 加载播放器
        player = [[AVAudioPlayer alloc]initWithContentsOfURL:[[NSURL alloc]initFileURLWithPath:path]error:nil];
        //初始化播放器
        [player prepareToPlay];
        
        //设置播放循环次数,如果numberOfLoops为负数 音频文件就会一直循环播放下去
        player.numberOfLoops = -1;
        
        //设置音频音量 volume的取值范围在 0.0为最小 0.1为最大 可以根据自己的情况而设置
        player.volume = 0.5f;
        
        NSLog(@"播放加载");
    }
    
}

-(void)playSoundPressed:(id)pressed
{
    //点击按钮后开始播放音乐
    //当player有值的情况下并且没有在播放中 开始播放音乐
    if (player) 
    {
        if (![player isPlaying]) 
        {
            [player play];
            NSLog(@"播放开始");
        }
    }
}

-(void)playPausePressed:(id)pressed
{
    //暂停播放声音
    if (player) {
        if ([player isPlaying]) {
            [player pause];
            NSLog(@"播放暂停");
        }
    }
}

-(void)playStopPressed:(id)pressed
{
    //停止播放声音
    if (player) {
        if ([player isPlaying]) {
            [player stop];
            NSLog(@"播放停止");
        }
    }
}


- (void)viewDidUnload
{
    [super viewDidUnload];
    // Release any retained subviews of the main view.
    // e.g. self.myOutlet = nil;
}

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    // Return YES for supported orientations
    return (interfaceOrientation == UIInterfaceOrientationPortrait);
}

@end
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值