我自己用 vs 试了一下是可以播放的,open 那里路径要不要试一试把D:\改成D:\\
,可能引发不必要的转义。
下面是一个简单的 C++ 代码示例,使用 OpenAL 播放一个音频文件:
#include <iostream>
#include <al.h>
#include <alc.h>
#include <sndfile.h>
int main() {
// 打开音频文件
SF_INFO sfinfo;
SNDFILE *sndfile = sf_open("audio.wav", SFM_READ, &sfinfo);
if (!sndfile) {
std::cerr << "Failed to open audio file" << std::endl;
return 1;
}
// 创建 OpenAL 的源和缓冲
ALuint source, buffer;
alGenSources(1, &source);
alGenBuffers(1, &buffer);
// 读取音频数据
int num_samples = sfinfo.frames * sfinfo.channels;
short samples[num_samples];
sf_read_short(sndfile, samples, num_samples);
// 将音频数据传给 OpenAL 缓冲
alBufferData(buffer, AL_FORMAT_STEREO16, samples, num_samples * sizeof(short), sfinfo.samplerate);
// 将缓冲关联到源上
alSourcei(source, AL_BUFFER, buffer);
// 播放音频
alSourcePlay(source);
// 等待播放完成
ALint state;
do {
alGetSourcei(source, AL_SOURCE_STATE, &state);
} while (state == AL_PLAYING);
// 清理资源
alDeleteSources(1, &source);
alDeleteBuffers(1, &buffer);
sf_close(sndfile);
return 0;
注意你的路径不能有中文,特殊字符转义字符等等,c++播放音频代码:
#include<Windows.h>
#include<mmsystem.h>
#pragma comment(lib,"WINMM.LIB")
int main(int argc, char* argv[])
{
mciSendString(TEXT("open C:\\Users\\wuden\\Desktop\\musiccs.mp3 alias mysong"), NULL, 0, NULL);
mciSendString(TEXT("play MySong"), NULL, 0, NULL);
Sleep(50000);
return 0;
}
望采纳哦哦!!!!!
不知道你这个问题是否已经解决, 如果还没有解决的话: