请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

vs2017打开音频设备时报错

void ffmpegTest()
{
//audio format context
//save whole audio context information
AVFormatContext *avfcontext;

//save error information
char errorinfo[1024];

AVDictionary *options = NULL;

// ret < 0 represent failing to open device 
int ret = 0;
//the order to list local device 
//or to use device manager to find local device
//ffmpeg -list_devices true -f dshow -i dummy

//format for mac : [[video device] : [ audio device]]
//format for windows : [video[or audio]=麦克风(Realtek(R) Audio)]
//need to format devicename to utf-8
 char devicename[] = "audio=麦克风阵列(Realtek High Definition Audio)";

//register all audio device
avdevice_register_all();

//get audio input format
/*
	avfoundation: mac
	dshow: windows
	alsa: linux
*/
AVInputFormat *aviformat= av_find_input_format("dshow");

/*
	open audio input stream 
	@param AVFormatContext :
	@param char url : open audio from url
	@param AVInputFormat :
	@param AVDictionary : argument to control device property
*/
//open
if ((ret = avformat_open_input(&avfcontext, devicename, aviformat, &options)) < 0)
{	
	av_strerror(ret,errorinfo,1024);
	printf("Failed to open audio device,[%d]%s\n", ret, errorinfo);
	return;
}

}

图片描述

正在回答 回答被采纳积分+3

3回答

李超 2021-10-31 15:00:51

参考我上传的例子程序

0 回复 有任何疑惑可以回复我~
truedei 2021-10-30 15:49:55
请问解决了吗
下载视频          
0 回复 有任何疑惑可以回复我~
李超 2021-03-10 17:42:19

应该是你的设备名没用utf-8编码导致的

0 回复 有任何疑惑可以回复我~
  • 提问者 慕沐4514409 #1
    把代码转为utf-8也没有用
    回复 有任何疑惑可以回复我~ 2021-03-10 21:03:37
  • 提问者 慕沐4514409 #2
    产生错误的这句代码就没有执行完
    回复 有任何疑惑可以回复我~ 2021-03-10 21:08:55
  • 李超 #3
    那你要先确认是哪句引起的问题
    回复 有任何疑惑可以回复我~ 2021-03-10 21:23:22
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信