组件SYAudio
音频的录制
- 录制后会进行压缩更小的文件,并以mp3格式输出
- 录制过程中,可以监测音量的变化
- 可以设置录音时间长
音频的播放
- 本地的文件播放
- 网络文件播放
- 播放状态监测
- 播放时间监测
- 文件播放总时间
- 当前播放进度时间
效果图
使用注意:
- 添加AVFoundation.framework、AudioToolbox.framework
- 音频处理包括:开始录音、停止录音、播放音频、停止音频播放
- 音频处理是通过按钮进行交互,通常采用三种状态交互方式
- UIControlEventTouchDown状态时,开始录音
- UIControlEventTouchUpInside状态时,停止录音,并进行类似音频文件存储的操作
- UIControlEventTouchDragExit状态时,与UIControlEventTouchUpInside状态进行相同的操作
- 注意隐私设置,添加启用录音功能
- 播放网络音频文件时,http协议的适配
- 在plist文件设置属性:App Transport Security Settings-Allow Arbitrary Loads-YES
- 设置Enable Bitcode属性为NO
使用介绍
- 自动导入:使用命令
pod 'SYAudio'
导入到项目中 - 手动导入:或下载源码后,将源码添加到项目中
使用示例
导入头文件
#import "SYAudio.h"
音量图标显示YES,或不显示NO
// 显示
[SYAudio shareAudio].audioRecorder.monitorVoice = YES;
// 不显示
[SYAudio shareAudio].audioRecorder.monitorVoice = NO;
音频处理方法-开始录音
NSString *filePath = xxxxx;
[[SYAudio shareAudio].audioRecorder recorderStart:filePath complete:^(BOOL isFailed) {
}];
音频处理方法-停止录音
扫描二维码关注公众号,回复:
2644032 查看本文章
[[SYAudio shareAudio].audioRecorder recorderStop];
音频处理方法-播放音频(本地音频文件,或网络音频文件均可播放)
NSString *filePath = xxxxx;
[[SYAudio shareAudio].audioPlayer playerStart:filePath complete:^(BOOL isFailed) {
}];
音频处理方法-停止音频播放
[[SYAudio shareAudio].audioPlayer playerPause];
代理、协议SYAudioDelegate,及实现协议方法
[SYAudio shareAudio].audioPlayer.delegate = self;
实现协议方法
录音
/// 开始录音
- (void)recordBegined
{
}
/// 停止录音
- (void)recordFinshed
{
}
/// 正在录音中,录音音量监测
- (void)recordingUpdateVoice:(double)lowPassResults
{
}
/// 正中录音中,是否录音倒计时、录音剩余时长
- (void)recordingWithResidualTime:(NSTimeInterval)time timer:(BOOL)isTimer
{
}
压缩
/// 开始压缩录音
- (void)recordBeginConvert
{
}
/// 结束压缩录音
- (void)recordFinshConvert:(NSString *)filePath
{
}
播放
/// 开始播放音频
- (void)audioPlayBegined:(AVPlayerItemStatus)state
{
}
/// 正在播放音频(总时长,当前时长)
- (void)audioPlaying:(NSTimeInterval)totalTime time:(NSTimeInterval)currentTime
{
}
/// 结束播放音频
- (void)audioPlayFinished
{
}