播放音频文件并调整系统音量
playing audio files and adjusting system volume
我正在编写一个很小的音乐程序,我正在尝试播放mp3。现在,我有一些非常丑陋的东西,但它有效:
std::string command("cd "C:\Program Files (x86)\Windows Media Player" && wmplayer /play "D:\music\A Perfect Circle\eMOTIVe\a.mp3");
system(command.c_str());
有没有更好或更可靠的方法来做到这一点?另外,如何调整主系统音量?
如果 Windows 中安装了 MP3 编解码器,则可以使用 Win32 API PlaySound()
函数或 VCL TMediaPlayer
组件来播放文件。
若要设置主卷,请使用 Win32 API waveOutSetVolume()
函数。
我创建了一个名为"Crosstalk"的C++音频库。
串扰是一种实时C++音频引擎,可用于创建和路由音频系统。
以下是如何播放 mp3 文件的示例:
XtSystem system;
XtMp3Decoder mp3Decoder;
XtAudioDevice audioDevice;
long md = system.addComponent(&mp3Decoder);
long ad = system.addComponent(&audioDevice);
system.connOutToIn(md,0,ad,0);
system.connOutToIn(md,1,ad,1);
mp3Decoder.loadFile("../05 Tchaikovski-Swan Lake-Scene.mp3");
mp3Decoder.play();
Crosstalk包括示例Xcode和Visual Studio项目。
您可以在此处下载 Crosstalk 并查看 API 文档和许可详细信息。
编辑:
在设置音量方面:串扰中包含一个名为"XtGain"的组件,您可以在 mp3 解码器输出和音频设备输入之间串联。这将允许您在音频流到达扬声器之前设置音频流的音量。
编辑 (01-12-2012):
Crosstalk已被一个名为"DSPatch"的开源项目所取代。DSPatch 本质上是 Crosstalk 后面路由引擎的升级版本,不再仅限于音频处理。DSPatch 允许您创建和路由几乎任何类型的流程链,并且免费供个人和专有使用:)
相关文章:
- C++,系统无法执行指定的程序
- 为char数组调整zlib-zpipe
- 在UNIX系统中使用DIR查找文件的字节大小
- 调整大小后指向元素值的指针unordered_map有效?
- 错误处理.将系统错误代码映射到泛型
- 在C++中调整向量中的索引
- 当系统的卷被修改时,如何修改WASAPI环回捕获卷
- 有什么好的方法可以让系统调用代理允许在单元测试中进行模拟
- 在C++游戏中与库存系统作斗争
- 文件系统:复制功能的速度秘诀是什么
- c++17文件系统::recursive_directory迭代器()在mac上没有给出这样的目录,但在windows上
- 在gtest.中使用fff.h模拟系统API
- 哪些库可以通过Opencv调整曝光率
- 如何制作无限制照明系统
- 系统.将数组移交给c#中动态加载的c++DLL时发生AccessViolationException
- 如何传递多个 std::文件系统选项?
- 遍历顺序由 std::文件系统directory_iterator给出
- C++系统找不到指定的文件错误
- 播放音频文件并调整系统音量
- 使用设置系统时间调整重置时钟速率,而无需使用时间服务器