文档章节

iOS开发音频播放基础——AVAudioPlayer的应用

珲少
 珲少
发布于 2015/05/26 15:18
字数 583
阅读 1291
收藏 0

iOS音频开发——AVAudioPlayer应用

AVAudioPlayer是系统提供给我们的一个音频播放类,在AVFoundation框架下,通过它,我们可以实现一个功能强大的音乐播放器。首先,在项目中我们需要导入AVFoundation这个框架。

一、AVAudioPlayer方法与属性详解

初始化方法有两种,通过音频的路径或者音频data数据初始化player对象

- (instancetype)initWithContentsOfURL:(NSURL *)url error:(NSError **)outError;
- (instancetype)initWithData:(NSData *)data error:(NSError **)outError;

注意:支持的音频格式有:AAC,ALAC,HE-AAC,iLBC,IMA4,MP3.

 

准备播放音频,返回值标志是否解析成功,是否可以播放。

- (BOOL)prepareToPlay;

 

开始播放音频

- (BOOL)play;

 

在一段时间间隔后播放

- (BOOL)playAtTime:(NSTimeInterval)time;

 

暂停播放,并且准备好继续播放

- (void)pause;

 

停止播放,不再准备好继续播放

- (void)stop;

 

获取是否正在播放

@property(readonly, getter=isPlaying) BOOL playing;

 

获取当前音频声道数

@property(readonly) NSUInteger numberOfChannels;

 

获取当前音频时长

@property(readonly) NSTimeInterval duration;

 

获取创建时的音频路径

@property(readonly) NSURL *url;

 

获取创建时的音频数据

@property(readonly) NSData *data;

 

设置声道偏移量,0为中心,-1为只有左声道,1为只有右声道

@property float pan;

 

设置音频音量,取值为0-1之间

@property float volume;

 

设置是否可以改变播放速度

@property BOOL enableRate;

注意:设置这个属性前必须先调用prepareToPlay这个方法。

 

设置播放速度,1为正常,0.5为一半速度,2.0为2倍速度

@property float rate;

 

设置当前播放的时间点

@property NSTimeInterval currentTime;

 

设置音频播放循环次数

@property NSInteger numberOfLoops;

 

获取音频设置字典

@property(readonly) NSDictionary *settings;

 

是否开启仪表计数功能

@property(getter=isMeteringEnabled) BOOL meteringEnabled;

 

更新仪表计数的值

- (void)updateMeters;

 

获取指定声道音频峰值

- (float)peakPowerForChannel:(NSUInteger)channelNumber;

 

获取指定声道音频平均值

- (float)averagePowerForChannel:(NSUInteger)channelNumber;

 

二、AVAudioPlayerDelegate方法详解

音频播放结束后调用的函数

- (void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)player successfully:(BOOL)flag;

 

播放遇到错误时调用的函数

- (void)audioPlayerDecodeErrorDidOccur:(AVAudioPlayer *)player error:(NSError *)error;

 

学习使用 欢迎转载

 

专注技术,热爱生活,交流技术,也做朋友。

——珲少 QQ群:203317592

© 著作权归作者所有

珲少

珲少

粉丝 873
博文 390
码字总数 469911
作品 0
上海
iOS工程师
私信 提问
加载中

评论(2)

刘明昕
ios9变化好大啊!
刘明昕
出个avplayerviewcontroller吧?15
iOS 9音频应用播放音频之ios9音频基本功能

iOS 9音频应用播放音频之ios9音频基本功能 在iOS 9音频应用开发中最为简单和常用的就是AVFoundation框架中的AVAudioPlayer类。虽然AVAudioPlayer类不能播放网络上的音频文件,但是它可以播放...

大学霸
2015/11/13
0
0
AVAudioPlayer音频播放器—IOS开发

IOS中有三种播放音频的方式:AVAudioPlayer、音频服务、音频队列。本文只讲解AVAudioPlayer。AVAudioPlayer在AVFoundation框架下,所以我们要导入AVFoundation.framework。 一、创建一个播放...

00_静笃_00
2013/03/06
0
1
AVAudioPlayer音频播放器—IOS开发

IOS中有三种播放音频的方式:AVAudioPlayer、音频服务、音频队列。 此文主要讲AVAudioPlayer,其他两个请见相关文章。 AVAudioPlayer在AVFoundation框架下,所以我们要导入AVFoundation.fram...

junwong
2012/03/05
21.3K
1
iOS后台音频播放及锁屏界面显示音频信息

iOS后台播放音乐及用户交互处理 后台播放是任何一个音频软件都支持的功能,在上一篇博客中,详细介绍了使用AVAudioPlayer播放音频的方法,这篇博客将对后台的处理做介绍,关于播放与设置音频...

珲少
2015/05/26
0
1
​iOS 9音频应用播放音频之第一个ios9音频实例2

iOS 9音频应用播放音频之第一个ios9音频实例2 ios9音频应用关联 iOS9音频应用中对于在主视图上添加的视图或控件,在使用它们时必须要与插座变量进行关联。ios9插座变量其实就是为主视图中的视...

大学霸
2015/11/17
0
0

没有更多内容

加载失败,请刷新页面

加载更多

面试题:你简历中写到熟悉Spring源码,那你给我说说它用到了那些设计模式?

Spring作为业界的经典框架,无论是在架构设计方面,还是在代码编写方面,都堪称行内典范。好了,话不多说,开始今天的内容。 spring中常用的设计模式达到九种。 模板方法(Template Method)...

我最喜欢三大框架
36分钟前
1
0
Sentinel Dashboard中修改规则同步到Nacos

上一篇我们介绍了如何通过改造Sentinel Dashboard来实现修改规则之后自动同步到Apollo。下面通过这篇,详细介绍当使用Nacos作为配置中心之后,如何实现Sentinel Dashboard中修改规则同步到N...

程序猿DD
43分钟前
4
0
Jenkins发送测试报告邮件

简介:总结怎么使用Jenkins执行自动化测试后发送测试报告邮件 一、系统设置 1、在Jenkins安装Email Extension Plugin插件,如下图: 2、设置Extended E-mail Notification (1)进入“系统管理”...

shzwork
45分钟前
1
0
状态模式

//相当把一个State对象存到Context对象中,然后通过Context实例化对象调用保存的state对象去调用state的相应的方法 https://blog.csdn.net/syc434432458/article/details/51210361...

南桥北木
57分钟前
3
0
基于 Jenkins + JaCoCo 实现功能测试代码覆盖率统计

本文首发于:Jenkins 中文社区 使用 JaCoCo 统计功能测试代码覆盖率? 对于 JaCoCo,有所了解但又不是很熟悉。 "有所了解"指的是在 CI 实践中已经使用 JaCoCo 对单元测试代码覆盖率统计: 当...

Jenkins中文社区
今天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部