读取返回-35,按照群里的sleep未解决,并且程序终止了

来源:6-9 从音频设备中读取音频数据

慕粉4406375

2022-01-07

av_log_set_level(AV_LOG_DEBUG);

int ret = 0;
AVFormatContext *context = NULL;
AVDictionary *options = NULL;
char *devicename = ":0";
char err[1024];

avdevice_register_all(); //申请设备

const AVInputFormat *avformat = av_find_input_format("avfoundation");
 
//打开音频设备
ret = avformat_open_input(&context, devicename, avformat, &options);
if (ret <0) {
    av_strerror(ret, err, 1024);
    printf("err is %s",err);
}


//读取
AVPacket pkt;
av_init_packet(&pkt);
int re =0;

while ( re = av_read_frame(context, &pkt) ) {
    printf("re is 。。。 %d\n",re);
    if(re == -35){
        sleep(3);
        continue;
    }
}
av_packet_unref(&pkt);
return;

这是我按照群里的解答改过的,依然无法读取数据,
控制台打印如下
[avfoundation @ 0x154f45f40] audio device ‘外置麦克风’ opened
re is 。。。 -35
然后程序handle住了一样,不再执行

写回答

1回答

李超

2022-01-09

单步调试一下,看在哪儿卡住了?

0
2
李超
你好好看看你的代码,你循环写的对吗?看看我提交到git 里的代码怎么写的,基础编程还不过关?
2022-01-10
共2条回复

音视频小白系统入门课 音视频基础+ffmpeg原理

掌握音视频采集、编解码、RTMP传输协议等核心基础

2317 学习 · 813 问题

查看课程