目录
一,实现步骤
二,具体实现
1,注册设备
cpp
// 初始化libavdevice并注册所有输入和输出设备
avdevice_register_all();
2,获取输入格式对象
cpp
//获取输入格式对象
const char *fmtName = "dshow"; //设备名,根据自己的来
const AVInputFormat *fmt = av_find_input_format(fmtName);
3,打开设备
cpp
AVFormatContext *ctx = NULL;//格式上下文
const char *deviceName = "audio=阵列麦克风 (AMD Audio Device)"; //自己的输入设备名
int ret = avformat_open_input(&ctx,deviceName,fmt,nullptr); //打开
if(ret<0)
{
char errbuf[1024];
av_strerror(ret,errbuf,sizeof (errbuf));
qDebug()<<"打开设备失败";
return ;
}else{
qDebug()<<"打开成功";
}
4,采集数据
cpp
AVPacket pkt;//数据包
av_read_frame(ctx,&pkt);
file.write((const char *)pkt.data,pkt.size); //写入。 (请自己创建文件对象file)
file.close();
5,释放资源
cpp
avformat_close_input(&ctx); //关闭设备