IOS 声音播放(利用AVAudioPlayer)

需要player设为全局变量
一、播放声音
AVAudioPlayer *player = [[AVAudioPlayeralloc] initWithContentsOfURL:[NSURLfileURLWithPath:[[NSBundlemainBundle] pathForResource:@"星月神话" ofType:@"mp3"]] error:nil];//使用本地URL创建

二、播放器属性
创建一个AVAudioPlayer以后你就可以对它的各种属性进行访问或设置了。
1、音量
 player.volume =0.8;//0.0-1.0之间
2、循环次数
player.numberOfLoops =3;//默认只播放一次
3、播放位置 
player.currentTime =15.0;//可以指定从任意位置开始播放
4、声道数
NSUInteger channels = player.numberOfChannels;//只读属性
5、持续时间
NSTimeInterval duration = player.duration;//获取持续时间
6、仪表计数
player.meteringEnabled =YES;//开启仪表计数功能
[playerupdateMeters];//更新仪表计数

三、播放声音
[player  prepareToPlay ]; // 分配播放所需的资源,并将其加入内部播放队列

[playerplay];//播放

[playerstop];//停止

四、代理方法

这个类对应的AVAudioPlayerDelegater的委托方法。 audioPlayerDidFinishPlaying:successfully: 当音频播放完成之后触发。当播放完成之后,可以将播放按钮的文本重新回设置成:Play Audio File

- ( void )audioPlayerDidFinishPlaying:( AVAudioPlayer  *)player  successfully:( BOOL )flag
{
    //播放结束时执行的动作

    [audioButton setTitle:@"Play Audio File" forState:UIControlStateNormal];

}

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

{
   //解码错误执行的动作

}

- (void)audioPlayerBeginInterruption:(AVAudioPlayer *)player;

{
   //处理中断的代码

}

audioPlayerEndInterruption:,当程序被应用外部打断之后,重新回到应用程序的时候触发。在这里当回到此应用程序的时候,继续播放音乐。

- (void)audioPlayerEndInterruption:(AVAudioPlayer *)player

{

    [audioPlayer play];

}

你可能感兴趣的:(IOS开发)