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

本文探讨了使用AVFoundation框架在iOS中实现音视频播放和录制的方法,重点关注AVAsset、AVAudioPlayer、AVAudioRecorder、AVAudioSession和AVPlayer等关键类的功能和用法。通过示例代码,展示了如何创建和控制音频播放及录音过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我们按照这个图,从上到下一点点看看整个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;






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值