Moblie PPC下音效播放和手機(jī)振動的實現(xiàn) 1、 音效播放:
1、Win CE平臺下內(nèi)部API直接支持.WAV文件的播放 此函數(shù)如下:
BOOL sndPlaySound(LPCTSTR lpszSoundName,UINT fuSound); 第一個參數(shù)是要播放的WAV文件路徑
第二個參數(shù)是播放模式 支持同步,異步播放和循環(huán)播放 ,不支持暫停播放
具體介紹參考MSDN;
結(jié)束播放直接調(diào)用 sndPlaySound(NULL,NULL)。
頭文件: #include “Mmsystem.h.”
連接庫文件:#pragma comment( lib, "Coredll.lib" ) 。
備注:經(jīng)測試在mobile PPC下 此API可以播放4M左右大小的文件完全可以勝任各種音效和背景音樂的實現(xiàn),
如果媒體文件不是.wav可以找相關(guān)工具進(jìn)行格式轉(zhuǎn)換。.mp3文件的播放在mobile下不能直接支持需
要解碼后播放,這個是比較復(fù)雜,我抽時間研究明白再說。
2、手機(jī)震動實現(xiàn):
PPC和SmartPhone對此功能的支持方式是不一樣的。
在SmartPhone下使用API: Vibrate 和 VibrateStop (函數(shù)介紹參考MSDN)
例如:
Vibrate(0, NULL, TRUE, INFINITE); ::Sleep(2000); VibrateStop();
頭文件: #include “vibrate.h“ 連接庫文件:#pragma comment( lib, " aygshell.lib" ) 。
在PPC下使用API:NLedGetDeviceInfo 和 NLedSetDevice (函數(shù)介紹參考MSDN)
例如:(此代碼在VS2005下通過功能測試并在項目中得到應(yīng)用,直接復(fù)制以下代碼并包含相關(guān)頭文件即可運行)
NLED_COUNT_INFO nci;
NLedGetDeviceInfo(NLED_COUNT_INFO_ID,(PVOID)&nci);
if(nci.cLeds > 1) //如果系統(tǒng)中LED個數(shù)大于1
{
NLED_SETTINGS_INFO nsi;
nsi.LedNum = 1; //LED號,第一個為0,一般情況下震動設(shè)備為1.
nsi.OffOnBlink = 1; //設(shè)置LED狀態(tài)為開
(void)NLedSetDevice(NLED_SETTINGS_INFO_ID, &nsi);
Sleep(1000);
nsi.LedNum = 1;
nsi.OffOnBlink = 0; //設(shè)置LED狀態(tài)為關(guān)
(void)NLedSetDevice(NLED_SETTINGS_INFO_ID, &nsi);
}
頭文件:#include “Nled.h” , #include “Pwinuser.h”
備注:
一般PPC系統(tǒng)會把震動設(shè)備做成LED,程序通過設(shè)置LED的狀態(tài)來啟動震動設(shè)備。
當(dāng)打開震動設(shè)備后應(yīng)當(dāng)做延遲處理后關(guān)閉設(shè)備,否則會一直震動的。
|