引用:
本文講解怎樣将 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
的範例代碼如下: