天天看点

Mac实现音频采集

如果大家对音频的采集流程不是很了解,可以看我上一篇文章https://blog.csdn.net/qq_15255121/article/details/115301516

我们现在mac上xcode创建一个app,如果大家不是很了解怎么创建app。请移步其他教程进行学习。

我在这里谈论几个我遇到的问题。

1、要想访问音频设备,必须关闭沙盒模式。关闭方式

Mac实现音频采集

如果还不行要看下

Mac实现音频采集

如果沙盒为YES要改为NO

2要使用麦克风和摄像头必须在info.plist进行说明

Mac实现音频采集

Privacy - Camera Usage Description    值写为什么要使用就可以了

Privacy - Microphone Usage Description  

Mac实现音频采集

3、Entitlements file "myffmpegdemo1.entitlements" was modified during the build, which is not supported. You can disable this error by setting 'CODE_SIGN_ALLOW_ENTITLEMENTS_MODIFICATION' to 'YES', however this may cause the built product's code signature or provisioning profile to contain incorrect entitlements

Mac实现音频采集

4、使用的时候要把需要的库和头文件导入到当前的工作环境下

Mac实现音频采集
Mac实现音频采集

引入的时候

头文件

Mac实现音频采集

库文件

Mac实现音频采集
Mac实现音频采集
Mac实现音频采集

选择相应的库文件即可。不带数字的dylib最后都会引用到带数字的。我们选择不带数字的即可。

5、av_read_frame返回-35

原因是音频设备没有准备好,我们要延迟一段时间再进行才去音频设备。

6 ffplay 播放的时候 我们可以根据

av_dump_format返回的输入参数进行参数调整

Input #0, avfoundation, from ':0':

  Duration: N/A, bitrate: N/A

    Stream #0:0, 0, 1/1000000: Audio: pcm_f32le, 44100 Hz, mono, 1411 kb/s

比如我的输入设备是单声道 

我可以把ffplay的命令写成下面的形式

ffplay -ar 44100 -ac 1 -f f32le audio.pcm

具体参数含义可以查看ffplay的文档

我把代码放到了如下git地址,欢迎下载。

https://gitee.com/creat151/ffmpeg.git

继续阅读