c++ - windows系统如何控制声音?

标签 c++ windows

我的软件需要播放声音来提醒某人。

但在那一刻,电脑可能正在播放音乐或电影等等。我希望我的应用程序在播放通知时停止所有其他声音输出。

我如何用 C++ 做到这一点?

最佳答案

您只提到了 C++ 语言,所以我假设您可以使用 MFC(作为类库来简化您的工作)。

但基本上你可以这样做:

#include <SDL/SDL_mixer.h>

int main(int argc, char **argv) {
    setbuf(stdout, 0);
    setbuf(stderr, 0);

    if (Mix_OpenAudio(44100, AUDIO_S16SYS, 2, 4096) != 0) {
        fprintf(stdout, "Unable to initialize audio: %s\n", Mix_GetError());
        exit(1);
    }

    Mix_Music *music = Mix_LoadMUS("notification.mp3");
    if (!music) {
        printf("Mix_LoadNotification(\"notification.mp3\"): %s\n", Mix_GetError());
        exit(1);
    }

    if (Mix_PlayMusic(music, -1)==-1) {
        printf("Mix_PlayNotification: %s\n", Mix_GetError());
        exit(1);
    }

    system("PAUSE");
    return 0;
}

在这里,您可以了解如何完成更复杂的工作:http://www.codeproject.com/KB/cpp/media_player.aspx

关于c++ - windows系统如何控制声音?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6805218/

相关文章:

c++ - 在 Windows 服务和 win32 应用程序 C++ 之间使用 IPC

c - 如何在内核模式驱动程序中使用 Winsock 内核 (WSK) 发送原始套接字数据包?

windows - Windows 中的 Apache 虚拟主机 - 如何处理符号链接(symbolic link)?

c++ - 使用可编辑的 QComboBox 从列表中选择值或获取手动输入

c++ - 我不能在我自己的头文件中包含 boost 头文件

c++ - 检查输出顺序是否正确

c++ - 类中的 C++ 函数是否动态分配?

c++ - 在 CUDA 中初始化 dim3 变量, "dim3 dimGrid(numBlocks);"语法如何工作?

windows - 无法写入文件错误 - ADODB.stream

ruby-on-rails - 从 Windows 访问在 Vagrant box 上运行的 Rails 服务器