天天看點

将 mp3 等音樂資源以資源形式嵌入 exe 檔案中

引用:

本文講解怎樣将 mp3 等音樂資源以資源形式嵌入 exe 檔案中,并通過 mciSendString 調用。嵌入 mp3 和嵌入圖檔略有不同,将圖檔嵌入到

exe 中,以及通路嵌入 exe 中的圖檔,請參考:http://www.easyx.cn/skills/View.aspx?id=6

【一、以資源檔案形式嵌入 exe】

關于“資源檔案”的介紹和“将 mp3 以資源形式嵌入 exe 檔案中”的步驟,請仿照

http://www.easyx.cn/skills/View.aspx?id=6。

【二、播放資源檔案中的 mp3】

1. 思路

檢視 MSDN 中關于 mciSendString

的使用,發現并不支援直接讀取資源檔案中的媒體檔案,也不支援讀取記憶體中的媒體檔案。是以,我們需要提取資源

檔案中的 mp3 為成臨時檔案,然後調用 mciSendString 播放,播放結束後再删掉這個臨時檔案。

2. 提取資源檔案中的為臨時檔案

這個步驟不算複雜,隻需要将資源檔案中的資源讀取到記憶體中,然後将記憶體資料寫入檔案即可。針對資源 ID 為字元串和宏兩種形式,核心代碼如下:

3. 使用 mciSendString 播放音樂

這一步利用第 2 步導出的檔案名,直接用 mciSendString 播放。mciSendString

的使用方法請參考:http://www.easyx.cn/skills/View.aspx?id=44

4. 删除臨時檔案

臨時檔案如果不再使用,請及時删除。可以使用 windows api 函數 DeleteFile。

【三、範例 1】

下面是一個完整的範例項目,該項目中有一個 "MP3" 類型的資源檔案,資源 ID 為字元串 "background.mp3",播放這個 mp3

的範例代碼如下: