Rss & SiteMap

曙海教育集团论坛 http://www.bjzhda.cn

曙海教育集团论坛
共1 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

标题:Moblie PPC下音效播放和手机振动的实现

1楼
wangxinxin 发表于:2010-12-4 10:28:04
Moblie PPC下音效播放和手机振动的实现
1、  音效播放:

1、Win CE平台下内部API直接支持.WAV文件的播放 此函数如下:

BOOL sndPlaySound(LPCTSTR lpszSoundName,UINT fuSound); 第一个参数是要播放的WAV文件路径

第二个参数是播放模式 支持同步,异步播放和循环播放 ,不支持暂停播放

具体介绍参考MSDN;

结束播放直接调用   sndPlaySound(NULL,NULL)。

头文件: #include “Mmsystem.h.”

连接库文件:#pragma comment( lib, "Coredll.lib" ) 。

备注:经测试在mobile PPC下 此API可以播放4M左右大小的文件完全可以胜任各种音效和背景音乐的实现,

如果媒体文件不是.wav可以找相关工具进行格式转换。.mp3文件的播放在mobile下不能直接支持需

要解码后播放,这个是比较复杂,我抽时间研究明白再说。



2、手机震动实现:



PPC和SmartPhone对此功能的支持方式是不一样的。

在SmartPhone下使用API: Vibrate 和 VibrateStop (函数介绍参考MSDN)

例如:

Vibrate(0, NULL, TRUE, INFINITE);
::Sleep(2000);
VibrateStop();

头文件: #include “vibrate.h“
连接库文件:#pragma comment( lib, " aygshell.lib" ) 。



在PPC下使用API:NLedGetDeviceInfo 和 NLedSetDevice (函数介绍参考MSDN)

例如:(此代码在VS2005下通过功能测试并在项目中得到应用,直接复制以下代码并包含相关头文件即可运行)

NLED_COUNT_INFO nci;

    NLedGetDeviceInfo(NLED_COUNT_INFO_ID,(PVOID)&nci);

    if(nci.cLeds > 1)        //如果系统中LED个数大于1

    {

       NLED_SETTINGS_INFO nsi;

       nsi.LedNum = 1;      //LED号,第一个为0,一般情况下震动设备为1.

       nsi.OffOnBlink = 1; //设置LED状态为开

       (void)NLedSetDevice(NLED_SETTINGS_INFO_ID, &nsi);

       Sleep(1000);

       nsi.LedNum = 1;

       nsi.OffOnBlink = 0; //设置LED状态为关

       (void)NLedSetDevice(NLED_SETTINGS_INFO_ID, &nsi);

    }

头文件:#include “Nled.h” , #include “Pwinuser.h”

备注:

一般PPC系统会把震动设备做成LED,程序通过设置LED的状态来启动震动设备。

当打开震动设备后应当做延迟处理后关闭设备,否则会一直震动的。
共1 条记录, 每页显示 10 条, 页签: [1]

Copyright © 2000 - 2009 曙海教育集团
Powered By 曙海教育集团 Version 2.2
Processed in .01563 s, 2 queries.