C++播放音乐怎么弄啊?

img


跟着网上的播放音乐咋还是没声的,用DevC++不行VS2022也不行,有谁会呀!

我自己用 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;
}

望采纳哦哦!!!!!

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^