ffmpeg 获得麦克风的名称及设备id c++
时间: 2023-08-09 17:11:33 浏览: 209
FFMPEG_SDK.rar_ffmpeg C++builder
5星 · 资源好评率100%
在 C++ 中,可以使用 FFmpeg 库的 avdevice 模块来获取麦克风的名称及设备 ID。以下是一个简单的示例代码:
```cpp
#include <iostream>
#include <string>
#include "libavdevice/avdevice.h"
int main() {
avdevice_register_all();
AVInputFormat *inputFmt = av_find_input_format("avfoundation");
if (!inputFmt) {
std::cerr << "Failed to find avfoundation input format." << std::endl;
return 1;
}
AVFormatContext *fmtCtx = nullptr;
int ret = avformat_open_input(&fmtCtx, "default", inputFmt, nullptr);
if (ret < 0) {
std::cerr << "Failed to open input device: " << av_err2str(ret) << std::endl;
return 1;
}
AVDeviceInfoList *devList = nullptr;
ret = avdevice_list_input_sources(inputFmt, nullptr, nullptr, &devList);
if (ret < 0) {
std::cerr << "Failed to list input sources: " << av_err2str(ret) << std::endl;
return 1;
}
std::cout << "Found " << devList->nb_devices << " input devices:" << std::endl;
for (int i = 0; i < devList->nb_devices; ++i) {
std::cout << i << ": " << devList->devices[i]->device_name << std::endl;
}
avformat_close_input(&fmtCtx);
avdevice_free_list_devices(&devList);
return 0;
}
```
这个示例程序使用 avfoundation 输入格式来获取麦克风的信息。通过 av_find_input_format 函数来获取输入格式,然后使用 avformat_open_input 函数来打开默认的输入设备。之后,使用 avdevice_list_input_sources 函数来列出所有的输入设备,并输出它们的名称。最后,通过 avformat_close_input 和 avdevice_free_list_devices 函数来释放资源。
阅读全文