2011-07-24 32 views
0

我的軟件需要播放聲音才能提醒某人。如何在windows系統中控制聲音?

但那一刻,電腦可能會播放音樂或電影等。我希望我的應用程序在播放通知時停止所有其他聲音輸出。

我怎麼用C++來做到這一點?

+2

'我想我的應用程序時,它發揮其notification'此停止所有其他聲音輸出是雷蒙德陳博客有關「如果兩個程序試圖做到這一點會怎麼樣」的一個很好的例子。 –

回答

1

你提到的只是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