iOS-----使用AVAudioPlayer播放音乐

时间:2023-03-10 05:15:52
iOS-----使用AVAudioPlayer播放音乐

使用AVAudioPlayer播放音乐

AVAudioPlayer是一个属于AVFoundation.framework的类.它作用类似于一个功能强大的播放器.AVAudioPlayer支持广泛的音频格式,

主要是以下这些格式.

  1. AAC
  2. AMR(Adaptive Multi-Rate,一种语音格式)
  3. ALAC(Apple Lossless Audio Code)
  4. iLBC(internet Low Bitrate Code,另一种语言格式)
  5. IMA4(IMA/ADPCM)
  6. linearPCM(uncompressed)
  7. μ-law和a-law
  8. MP3(MPEG-Laudio Layer 3)

使用AVAudioPlayer播放音频十分简单,当程序控制AVAudioPlayer对象装载音频完成之后,可以调用AVAudioPlayer的如下方法进行播放控制

-play

开始或恢复播放.调用该方法时,如果该音频还没有准备好,程序会隐式先执行prepareToPlay方法

- playAtTime

(NSTimeInterval)time: 在指定时间点开始或恢复播放

- ause

暂停

- stop

停止

- prepareToPlay

准备开始播放.调用play方法时,如果该银屏还没有准备好,程序会隐式先执行该方法.

AVAudioPlayer装载指定音频文件,AVAudioPlayer提供了如下简单的初始化方法

- initWithContentsOfURL:error: :

从指定URL装载音频文件,并返回新创建的AVAudioPlayer对象.

- initWithData:error: :

装载指定NSData对象所代表的音频数据,并返回新创建的AVAudioPlayer对象

AVAudioPlayer提供了如下属性来访问音频文件的相关信息

playing:

该只读属性返回播放器是否正在播放音频

volume:

该属性用于设置和返回播放器的音量增益.该增益值可以为0.0~1.0.

pan:

该属性用于设置或返回立体声平衡.如果该属性设为-1.0,则完全在左边播放;如果设为0.0,则左右音量相同;如果设为1.0,则完全在右边播放.

rate:

该属性设置或返回播放速率.该属性值支持0.5(半速播放)~2.0(倍速播放)之间的浮点值

enableRate:

该属性设置或返回播放器是否允许改变播放速率.

numberOfLoops:

该属性设置或返回播放器的循环次数.如果将该属性设为负值,那么播放器将会一直播放,直到程序调用stop方法停止播放.

delegate:

该属性用于为AVAudioPlayer设置代理对象.

numberOfChannels:

该只读属性返回音频的声道数目

duration:

该只读属性返回音频的持续时间.

currentTime:

该属性获取音频的播放点.

deviceCurrentTime:

该只读属性返回音频.

url:

该只读属性返回播放器关联的音频URL.

data:

该只读属性返回播放器关联的音频数据.