曙海教育集团论坛3G手机技术专区Windows Mobile手机开发 → Moblie PPC下音效播放和手机振动的实现


  共有3113人关注过本帖树形打印

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

美女呀,离线,留言给我吧!
wangxinxin
  1楼 个性首页 | 博客 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:青蜂侠 帖子:1393 积分:14038 威望:0 精华:0 注册:2010-11-12 11:08:23
Moblie PPC下音效播放和手机振动的实现  发帖心情 Post By: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的状态来启动震动设备。

当打开震动设备后应当做延迟处理后关闭设备,否则会一直震动的。

支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部

返回版面帖子列表

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








签名