一 通过编程录音
开发录音功能的主要步骤是:
- 注册设备
- 获取输入格式对象
- 打开设备
- 采集数据
- 释放资源
需要用到的FFmpeg库有4个。
extern "C" {
// 设备相关API
#include <libavdevice/avdevice.h>
// 格式相关API,也就是说,windows 的dshow,mac 的 avfundation, linux 的alsa
#include <libavformat/avformat.h>
// 工具相关API(比如错误处理)
#include <libavutil/avutil.h>
// 编码相关API
#include <libavcodec/avcodec.h>
}
1.1 权限申请
在Mac平台,有2个注意点:
- 需要在Info.plist中添加麦克风的使用说明,申请麦克风的使用权限
- 使用Debug模式运行程序
- 不然会出现闪退的情况
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>NSMicrophoneUsageDescription</key> # 这个是固定的
<string>使用麦克风采集您的天籁之音</string> #这个是随便写的,提示最终用户的
</dict>
</plist>