C++ mciSendString 设置音频错误

标签 c++ audio mp3 volume mcisendstring

我这里有这个功能; 音量设置为 500,文件名字符串设置为“test.mp3”。

void Volume(int volume, std::string filename)
        {
        std::string szCommand = "setaudio \"" + filename + "\" volume to " + volume;
        mciSendString(szCommand.c_str(), NULL, 0, 0);
    }

它给我错误;

no match for 'operator+' in 'std::operator+(std::basic_string<_CharT, _Traits, _Alloc>&&, const _CharT*) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>](((const char*)"\" volume to ")) + volume'|

我不知道为什么,因为下面的函数在加载 .mp3 文件时完美运行

void Load(std::string filename)
    {
        std::string szCommand = "open \"" + filename + "\" type mpegvideo alias " + filename;
        mciSendString(szCommand.c_str(), NULL, 0, 0);
    }

我很困惑为什么它不起作用。 setaudio 不接受文件名有什么问题?我到处搜索,但没有答案,甚至在 MSDN 上也没有。

最佳答案

这不起作用,因为 volume 是整数而不是字符串。您需要将整数转换为字符串。根据您的编译器,您应该能够使用 std::to_string从 int 转换为字符串。

关于C++ mciSendString 设置音频错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19647872/

相关文章:

c++ - 乘法宏给出错误的答案

android - 使用三星录制的音频无法在 iOS 上播放

c++ - 使用 mciSendString (MCIERR_CANNOT_LOAD_DRIVER) 播放 mp3 文件

linux - Ffmpeg 和 Xing header - iTunes 问题和持续时间问题

c++ - 将 double 转换为 QString

要求 const 对象的 C++ 类

java - 在 Android 的 OpenGL View 之上播放视频

actionscript-3 - 闪光灯中无间隙的声音循环

audio - 移动和Web的实时音频(广播)流传输的最佳协议(protocol)是什么?

audio - WebM 也是用于音频的,还是仅用于视频?