利用AVFoundation定制个性化音视频播放

我们按照这个图,从上到下一点点看看整个IOS的音频结构。

MediaPlayer太简单了,这里就不介绍了。先从AVFoundation看起:

这个框架下的类太多了,我们调几个比较重要的说说:

(1)    AVAsset:读写音视频文件,建立一系列的读写方法,获取音频视频数据。非常重要。

(2)    AVAudioPlayer:音频播放,定制音频播放界面,对音频播放、暂停、快进、快退、循环等各种功能进行逻辑控制。

(3)    AVAudioRecorder:和(2)类似,这里是录音控制类。

(4)    AVAudioSessionAVCaptureSession AVCaptureSession这里即可以处理视频也可以处理音频,所以我们来是了解下这个如何使用。

(5)    AVPlayer:音视频播放

这里只列出了5个经常使用的AVFoundation的类,但是5个每一个都十分复杂,所以由于篇幅关系,这里只介绍这些

音频播放与录制:AVAudioPlayer AAudioRecorder:

看看AVAudioPlayer播放方法:


这是当时做的一个测试demo的效果:


具体的代码和分析可以参考另一篇博客:

IOS音频2:之采用四种方式播放音频文件(二)AudioToolbox AVFoundation OpenAL AUDIO QUEUE

IOS音频3:之采用四种方式播放音频文件(三)AudioToolbox AVFoundation OpenAL AUDIO QUEUE

这里就不重复了。看看AAudioRecorder 怎么使用:

音频录制和使用饿过程类似,下面就纪录下录制的步骤。

1)利用录音的文件路径实例化AVAudioRecorder

AVAudioRecorder *recorder = [[AVAudioRecorder alloc] initWithURL:url settings:nil error:&error];

这里URL是你录音完所要存放的位置。

(2)设置代理方法,准备录音

    recorder.delegate = self;

    [recorder prepareToRecord];

(3)录音、停止、暂停等功能

    [recorder record];

    [recorder stop];

(4)可以在回调方法中处理一些业务逻辑

比如在音频录制完成之后:

- (void)audioRecorderDidFinishRecording:(AVAudioRecorder *)recordersuccessfully:(BOOL)flag;

- (void)audioRecorderEncodeErrorDidOccur:(AVAudioRecorder *)recordererror:(NSError *)error;






猜你喜欢

转载自blog.csdn.net/u014011807/article/details/46873101