您的位置:首页 > 运维架构 > 网站架构

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

2015-07-14 09:28 423 查看


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

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

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

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

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

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

(4)    AVAudioSession/AVCaptureSession
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;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息