iOS --- 使用AVFoundation的AVAudioPlayer来播放音频

来源:互联网 发布:c语言return 0的用法 编辑:程序博客网 时间:2024/06/05 01:09

iOS提供了AVFoundation框架来进行音频的播放和录制,分别使用AVAudioPlayer和AVAudioRecorder即可。

AVAudioPlayer

AVAudioPlayer的简单使用如下,可以指定音频文件:

#import <AVFoundation/AVFoundation.h>NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"sound" ofType:@"m4a"]];player = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:nil];player.volume = 0.1f;[player prepareToPlay];[player play];// [player stop];

也可以指定音频的NSData

player = [[AVAudioPlayer alloc] initWithData:soundData error:nil];

AVAudioPlayer的一些参数:

player.numberOfLoops = 1; // 默认播放一次player.meteringEnabled = YES; // 开启仪表计数功能player.currentTime = 10.0; // 从指定位置开始播放NSInteger channels = player.numberOfChannels; // 声道数,只读NSTimerInterval duration = player.duration; // 音频持续时间

AVAudioPlayerDelegate

可以使用AVAudioPlayerDelegate的一些方法来处理音频播放完善播放过程。

// 播放完成时调用,播放中断不调用- (void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)player successfully:(BOOL)flag;// 解码错误- (void)audioPlayerDecodeErrorDidOccur:(AVAudioPlayer *)player error:(NSError * __nullable)error;// 播放中断时的处理- (void)audioPlayerBeginInterruption:(AVAudioPlayer *)player NS_DEPRECATED_IOS(2_2, 8_0);// 中断处理结束后- (void)audioPlayerEndInterruption:(AVAudioPlayer *)player
0 0