使用SndPlaySound從內存中播放WAV


有些時候,我們寫的程序需要播放音樂,一般大家會采用以下幾種方式:1.把音樂文件放置在某個特定的目錄,例如Sound,WAV,Music供程序讀取播放;2.使用資源來存放音樂。有些人估計也是使用這個方法的,不過大部分人可能是先從資源里把音樂文件釋放出來,然后再去讀取播放。我今天要介紹的方式是直接把音樂文件載入內存,然后從內存中進行讀取播放。好了給代碼吧:
var
  hResInfo: THandle;
  PtrSound: Pointer;
begin
  hResInfo := FindResource(HInstance, 'sound', 'WAV');
  hRes := LoadResource(HInstance, hResInfo);
  if hRes > 32 then
  begin
    PtrSound := LockResource(hRes);
  end;
  SndPlaySound(PtrSound, Snd_Async or Snd_Memory);
end;
核心代碼已經給出,前提是我們必須制作資源文件,首先,我們先建立一個擴展名為rc的文件

其中sound為資源名稱,WAV資源類型,Girl.wav為音樂文件。
然后我們將音樂文件與RC文件放置於同一個目錄下,用brcc32進行編譯,目錄下會生成一個RES擴展名的文件,將該文件放到Delphi的項目文件夾下,在單元的implementation的{$R *.dfm}下加上{$R Girl.RES},最后編譯即可。

http://www.lsworks.net/article/1.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM