2016-11-16 25 views
-2

我已經在C中創建了遊戲蛇,可以在Windows上運行。我想在用戶擊中特定鍵時或者蛇做某些事情時添加聲音。如何讓C程序播放聲音文件?

我知道如何在C上在MacOS上做到這一點,但我不知道如何在Windows上做到這一點。

我試圖編譯使用我在Google上找到的playsound()函數,但是我收到一條錯誤消息,指示playsound不存在。

我試着播放Windows播放的聲音時,當您鍵入控制G運行,但這導致我失望了一個永無止境,沒有幫助的代碼一個可怕的兔子洞。

我目前沒有可以發佈的代碼。

+1

Windows [playsound function](https://msdn.microsoft.com/en-us/library/windows/desktop/dd743680(v = vs.85).aspx)確實存在。一個例子顯示在手冊頁上。請注意,它說*「SND_ASYNC標誌使PlaySound立即返回而不等待聲音完成播放。」*。你需要'#include '並鏈接上面提到的庫。 –

+0

如果您嘗試使用播放功能*,您必須分享一些代碼。你是否在你的編譯器設置中包含了winmm庫 - 並將它包含在你的代碼中? – dbmitch

+0

http://stackoverflow.com/a/1565518/2419128 – dbmitch

回答

0

我會建議看看SDL這是一個非常可靠,廣泛和跨平臺的庫。它具有許多功能,提供IO設備(鍵盤,控制器,鼠標,通過OpenGL的圖形,聲音......)的低級控制。

+0

謝謝!我是編程新手,所以SDL甚至不是我所知道的。 – Jennifer

0

我遇到了類似的問題,我正在使用的遊戲 - 如果碰巧你使用的是Win32 API(windows.h),你應該可以利用PlaySound函數,但它只能玩(混合)one sound at a time(例如,沒有音樂和聲音效果)。請注意,正如Weather Vane在他的評論中指出的,大寫字母很重要(PlaySound vs playsound)。如果你只需要一個聲音並且你使用的是Win32 API,那麼搞清PlaySound()函數將是最簡單的。這裏有一個SO question,有一個基本的例子,應該在C工作。

我結束了使用OpenAL(類似於OpenGL),它允許你一次播放幾個聲音。我建議尋找一些簡單,完整的例子。

+0

謝謝!我不知道PlaySound()一次只能播放一個聲音。 – Jennifer

+0

Nothin'表示感謝,喜歡upvote :)作爲一個方面的評論,如果你最終走的是OpenAL路線,知道設置它是屁股的一大痛苦,但一旦它工作,它會滿足你所有的音頻需求。 – schil227