播放嵌入資源的聲音檔案
摘要:本文闡述了在Windows Mobile中如何播放潛入資源的聲音檔案
Keywords
PlaySound, Windows Mobile, Embedded Resources, p/invoke
要在Windows Mobile上播放嵌入資源(Embedded Resource)的聲音檔案,該怎麼辦呢?顯然是要用到反射的,我查了一下MSDN,還好GetManifestResourceStream對移動裝置是可用的。
首先我們需要一個類,通過P/invoke來幫助我們實現播放聲音的功能:
[Flags]
enum SoundFlags
{
Alias = 0x00010000,
Filename = 0x00020000,
Synchronous = 0x00000000,
Asynchronous = 0x00000001,
Memory = 0x00000004,
Loop = 0x00000008,
NoStop = 0x00000010
}
class PlayNativeRef
{
[DllImport("CoreDll.DLL", EntryPoint = "PlaySound", SetLastError = true)]
public extern static int PlaySound(byte[] szSound, IntPtr hMod, SoundFlags flags);
}
enum SoundFlags
{
Alias = 0x00010000,
Filename = 0x00020000,
Synchronous = 0x00000000,
Asynchronous = 0x00000001,
Memory = 0x00000004,
Loop = 0x00000008,
NoStop = 0x00000010
}
class PlayNativeRef
{
[DllImport("CoreDll.DLL", EntryPoint = "PlaySound", SetLastError = true)]
public extern static int PlaySound(byte[] szSound, IntPtr hMod, SoundFlags flags);
}
呼叫的時候,我們先要將該聲音資源從程式集載入到記憶體中:
MemoryStream ms =(MemoryStream) Assembly.GetExecutingAssembly().GetManifestResourceStream("PlayEmbeddedAudio.Resources.yuyinlangdu.wav");
Tips這裡的資源名字,一定不要弄錯,如果你不確信的話,可以通過GetManifestResourceNames方法來檢視資源的名稱。
然後,我們就可以呼叫PlaySound方法來播放了:
PlayNativeRef.PlaySound(
ms.GetBuffer(),
IntPtr.Zero,
SoundFlags.Synchronous | SoundFlags.Memory);
ms.GetBuffer(),
IntPtr.Zero,
SoundFlags.Synchronous | SoundFlags.Memory);
注意這裡的SoundFlag要記得把Memory加上,表示第一個引數是指向記憶體中的聲音檔案映象。播放的時候從記憶體中載入資源。
不過有一點要注意的,嵌入的聲音檔案不宜太多,否則會讓程式集變得很龐大。
程式碼在這裡下載
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/14766526/viewspace-561432/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- PowerPoint中如何嵌入聲音檔案
- Silverlight中播放聲音mp3檔案
- golang聲音播放的初探Golang
- Android 播放raw資料夾下音訊檔案Android音訊
- 播放SD卡上全部音訊檔案SD卡音訊
- 電腦播放音訊聽不到聲音音訊
- 傑理提示音播放成功但沒有聲音
- E50拍照時候會出聲音,聲音檔案位於……
- Win10系統聲音檔案在哪 win10怎麼開啟系統聲音檔案路徑Win10
- 如何將背景音樂嵌入到PPT檔案中
- Chrome 66禁止聲音自動播放之後Chrome
- win10 1903播放聲音卡頓怎麼處理_win10播放聲音卡頓嚴重如何修復Win10
- 音訊開發之錄製播放pcm檔案音訊
- 在PowerPoint中播放多種音影片檔案
- Asp.Net音訊檔案上傳和播放ASP.NET音訊
- 樹莓派實時播放麥克風聲音到音響樹莓派
- 微信IOS中搖一搖無法播放聲音iOS
- Android多媒體之認識聲音、錄音與播放(PCM)Android
- MacBook 播放器無聲音 (排除硬體問題)Mac播放器
- 在C#中利用DirectX實現聲音播放(轉)C#
- 【打包1】內容、嵌入資源等檔案的生成操作,屬性如何設定
- 如何播放通過微信下載介面下載的音訊檔案音訊
- windows 10 聲音控制皮膚-錄製-microphone-偵聽 造成回聲,麥克風接收的 話/聲音 會再次播放出來Windows
- Java 在Word中嵌入多媒體(視訊、音訊)檔案Java音訊
- 音樂播放器開源實戰專案的階段總結一播放器
- 音樂播放器開源實戰專案的階段總結二播放器
- 23 款開源的聲音、視覺生產工具視覺
- 大型WAV檔案的播放 (轉)
- (線上等)請問怎樣才能將WAV聲音檔案存入MYSQL資料庫中?MySql資料庫
- 如何解決win10 5.1聲道測試正常播放音樂沒聲音Win10
- 如何播放 WAV 檔案?
- 【方法】Win10 暫停影片重新播放聲音突然變大Win10
- Android開源線上音樂播放器——波尼音樂Android播放器
- Android MediaCodec硬解碼AAC音訊檔案(實時AAC音訊幀)並播放Android音訊
- Win10系統播放本地影片黑屏但有聲音如何解決Win10
- Android 各版本 SD卡檔案讀寫變化及其音樂播放AndroidSD卡
- android播放swf檔案Android
- 檔案/資源命名規範