欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

播发音频文件

更新时间: 2014-01-05 02:34:21 责任编辑: Author_N1

 

播放音频文件


想要在你的应用中播放音频文件,可以使用AV框架(Audio 和 Video 框架)里的AVAudioPllayer 类。

播放音频

- (void)viewDidLoad
{
    [super viewDidLoad];
	
    dispatch_queue_t dispatchQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
    dispatch_async(dispatchQueue, ^(void){
        NSBundle *mainBundle = [NSBundle mainBundle];
        NSString *filePath = [mainBundle pathForResource:@"慢慢" ofType:@"mp3"];
        NSData *fileData = [NSData dataWithContentsOfFile:filePath];
        NSError *error = nil;
        /*start the audio player*/
        self.audioPlay = [[AVAudioPlayer alloc] initWithData:fileData error:&error];
        /*did we get an instance of AVAudioPlayer?*/
        if (self.audioPlay != nil) {
            /*set the delegate and start playing*/
            self.audioPlay.delegate = self;
            if ([self.audioPlay prepareToPlay] && [self.audioPlay play]) {
                /*successfully started playing*/
            }else{
                /*failed to play*/
            }
        }else{
            /*failed to instantiate AVAudioPlayer*/
        }
    });
}


          在viewDidLoad 方法中,我们用GCD异步从歌曲数据中加载数据到NSData实例中,而且把数据提供给音频播放器。这么做是因为加载不同长度的音频文件中的数据需要很长时间,如果我们在主线程中做的话会有影响UI体验的风险。因此,我们利用一个全局的并发队列来确保代码不在主线程中运行。 

处理播放音频时的中断

你想让你的AVAudioPlayer实例在被打断后恢复播放,例如来电。



上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:34:21
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/11608/
本文WWW.DOC100.NET DOC100.NET版权所有。