當我運行我的應用程序時,音樂正在播放,但當我使用我的鍵盤或鼠標時,它停止並從頭開始播放。有什麼我可以做的,以避免停止的時刻,讓它從頭到尾循環播放,無論我用鍵盤做什麼?我使用winmm,得到所有需要的標題和鏈接庫。這裏的代碼:停止音樂OpenGL
PlaySound("audio.wav", NULL, SND_ASYNC|SND_FILENAME|SND_LOOP);
當我運行我的應用程序時,音樂正在播放,但當我使用我的鍵盤或鼠標時,它停止並從頭開始播放。有什麼我可以做的,以避免停止的時刻,讓它從頭到尾循環播放,無論我用鍵盤做什麼?我使用winmm,得到所有需要的標題和鏈接庫。這裏的代碼:停止音樂OpenGL
PlaySound("audio.wav", NULL, SND_ASYNC|SND_FILENAME|SND_LOOP);
PlaySound
是不是真的你想用這個功能。它的主要用途是發出短促的聲音,如錯誤通知或類似聲音。您可以針對DirectSound(Windows),CoreAudio(MacOS X),ALSA或PulseAudio¹(Linux),OSS(也包括Linux和Unix)進行編程,例如音樂或遊戲音效。
然而,由於這是一個大量的API,大多數開發人員所做的就是使用一些提供統一API的音頻框架。流行的選擇是
1:在個人筆記上,我建議不要使用PulseAudio。 PulseAudio有一個非常好的API,它實現了很多偉大的想法,但不幸的是,我還沒有碰到一個使用PA的Linux系統,其中聲音沒有在的某些方式中被破壞。這不是PA的問題,但是音頻的整個問題非常棘手,而PulseAudio所依賴的Linux的標準音頻基礎設施(ALSA)本身也存在公平的問題。
寫入怪癖來處理ALSA的麻煩和損壞(在某些聲音硬件確實是奇怪的事情)聲音硬件是可管理的,並且可以很快得到好的結果。編寫怪癖來解決由於PA和音頻客戶端中音頻硬件損壞而導致的問題,這是一個重大的噩夢。
OpenGL是用於渲染圖形;你的意思是OpenAL? – Poriferous
不。我正在OpenGL中創建一個應用程序,但想要添加一些音樂。 – pokszyk
@pokszyk:就像已經說過的,聲音和音樂不是OpenGL的領域。 – datenwolf