【发布时间】:2021-11-29 17:07:47
【问题描述】:
我正在尝试从 win32 C++ 控制台应用程序播放 mp3 文件。根据我在网上阅读的内容,mciSendString 是我正在寻找的 API,我希望以下内容可以正常工作,但它没有。
#include <cstdio>
#include <array>
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#include <mmsystem.h>
using namespace std;
#pragma comment(lib, "Winmm.lib")
int main() {
std::array<char, MAXERRORLENGTH> errorString;
mciGetErrorStringA(
mciSendStringA(
"open \"C:\\path\\to\\1_.mp3\" type mpegvideo alias click1",
nullptr,
0,
nullptr),
errorString.data(),
MAXERRORLENGTH);
std::printf("%s\n", errorString.data());
mciGetErrorStringA(
mciSendStringA("play click1", nullptr, 0, nullptr),
errorString.data(),
MAXERRORLENGTH);
std::printf("%s\n", errorString.data());
}
我在 Visual Studio 2019 中创建了一个新的 C++ 控制台应用程序,构建了此代码,并从控制台运行它。它打印:
The specified command was carried out.
The specified command was carried out.
在我的耳机中,我听到了短暂的爆裂声,但仅此而已。会发生什么?我是否首先需要配置音频设备?设置音量?
【问题讨论】:
标签: c++ winapi audio visual-c++ console-application