r9怎么触屏oppo r9 软件调节音量声音?

8267人阅读
WinCE系统定制(3)
前面有做一个操作系统为WinCE5.0的嵌入式设备,临到发布阶段版本了,突然来了个新需求(一直痛恨随意变更和拍脑袋式样的软件需求,但是顾客是上帝,没有办法),要求更改点击触摸屏的声音(还要怪微软默认的声音太难听)为自定义的声音。
根据以往经验,以为只要替换一下Image里面包含的声音文件,顶多再修改注册表里面某个键值就可以了;却发现这次不管用了,在注册表里根本找不到相关的项。在设备的Windows目录下虽然找到很多.wav的声音文件,却都是一些比如菜单选择,连接断开等事件对应的声音,唯独没有键盘音和触摸屏的声音文件。
于是发动Google大法,遍寻天下WinCE高手留下的语录和足迹,终于有所领悟,原来这两种声音不是直接以.wav形式存在在设备当中,而是被当作资源文件编译到动态链接库当中。不过还是搜索到这两种声音.wav的名称,键盘音两个为keysoft.wav和keyloud.wav,触摸屏的声音为tchsoft.wav和tchloud.wav. 再用Windows 搜索工具在WinCE500目录下定位到这个目录:../WINCE500/PUBLIC/COMMON/OAK/DRIVERS/WAVEUI. 这个目录下除了有上述四个文件,waveui.c里面没有实际内容,主要是waveui.rc这个资源文件和 它使用的头文件resource.h.
接下来看看这个目录下的sources文件,目标文件是生成waveui.lib,连接的文件是waveui.c和waveui.rc。在../WINCE500目录下的build.log(sysgen时生成的)里面找了下,这个库最终是被waveapi.dll链接的。使用sysgen_capture工具获取到生成waveapi.dll的sources文件,主要内容如下:&
TARGETNAME=waveapi
TARGETTYPE=DYNLINK
RELEASETYPE=PLATFORM
SYNCHRONIZE_DRAIN=1
DLLENTRY=WaveApiDllEntry
DEFFILE=$(_PUBLICROOT)/common/oak/lib/$(_CPUINDPATH)/waveapi.def
SOURCELIBS=/
&&& $(_PUBLICROOT)/common/oak/lib/$(_CPUINDPATH)/wapiwave.lib /
&&& $(_PUBLICROOT)/common/oak/lib/$(_CPUINDPATH)/wapimap.lib /
&&& $(_PUBLICROOT)/common/oak/lib /$(_CPUINDPATH)/waveui.lib
TARGETLIBS=/
&&& $(_SYSGENSDKROOT)/lib/$(_CPUINDPATH)/coredll.lib /
&&& $(_SYSGENOAKROOT)/lib/$(_CPUINDPATH)/audevman.lib /
&&& $(_PUBLICROOT)/common/oak/lib/$(_CPUINDPATH)/wapistub.lib /
&&& $(_PUBLICROOT)/common/oak/lib/$(_CPUINDPATH)/0409/waveapi.res
从上面可以看到,和waveui这个目录有关的一个是waveui.lib被链接,一个是waveapi.res这个文件的输入文件之一应该就是waveui.rc.
到这一步,基本上可以确定触摸屏的声音通过waveui.rc文件编译为资源文件waveapi.res,然后成为waveapi.dll的一部分供系统调用。现在的问题是应该如何通过更新waveapi.dll来达到更新触摸屏的声音?
Waveapi.dll在系统Image文件生成前存在于release目录下,所以我们只需要保证release目录下的waveapi.dll包含的声音更新即可。
一种办法是直接用自定义文件重命名后替换../WINCE500/PUBLIC/COMMON/OAK/DRIVERS/WAVEUI下的.wav文件,然后在WinCE Platform Builder的Build OS菜单里面打开的命令行里面重新编译这个目录(Build -c),最后用Build OS菜单里面的sysgen命令重新生成整个工程文件和镜像文件。这种办法在一些论坛上也有找到一些前辈的说法为依据,不过却违反了BSP开发的独立性原则,即BSP的实现应该仅在BSP的代码中修改实现,而不应该修改公共目录代码。另外这种办法也显得有些笨拙。
[注意,即使是这种笨拙的办法也会遇到一些意想不到的问题,比如自定义的.wav文件大小和内容要适合,我开始用一个音乐文件做了一个较大(两秒,约8K)的.wav,结果重复试了好几次,就是没有声音;后面换了客户提供的声音文件就OK了。Faint中]。
借鉴以前移植public下的驱动代码的经验,于是有了第二种想法,将Waveapi的相关实现都移植到BSP中。在BSP下新建waveapi目录,将/WINCE500/PUBLIC/COMMON/OAK/DRIVERS/WAVEUI拷贝到下面作为一个子目录,新建另外一个子目录Dll,里面存放以下文件
(1)&&& makefile:从其他任意目录拷贝
(2)&&& sources:使用上述用sysgen_capture获取的sources文件,作适当修改(红色部分),如下
TARGETNAME=waveapi
TARGETTYPE=DYNLINK
RELEASETYPE=PLATFORM
SYNCHRONIZE_DRAIN=1
TARGETDEFNAME=waveapi
DEFFILE=$(TARGETDEFNAME).def
DLLENTRY=WaveApiDllEntry
SOURCELIBS=/
&&& $(_PUBLICROOT)/common/oak/lib/$(_CPUINDPATH)/wapiwave.lib /
&&& $(_PUBLICROOT)/common/oak/lib/$(_CPUINDPATH)/wapimap.lib /
&&& $(_TARGETPLATROOT)/lib/$(_CPUINDPATH)/waveui.lib
TARGETLIBS=/
&&& $(_SYSGENSDKROOT)/lib/$(_CPUINDPATH)/coredll.lib /
&&& $(_SYSGENOAKROOT)/lib/$(_CPUINDPATH)/audevman.lib /
&&& $(_PUBLICROOT)/common/oak/lib/$(_CPUINDPATH)/wapistub.lib /
&&& waveapi.res
(3)&&& waveapi.def,新建如下
LIBRARY WAVEAPI
EXPORTS WAM_Init
&&&&&& WAM_Deinit
&&&&&& WAM_Open
&&&&&& WAM_Close
&&&&&& WAM_Read
&&&&&& WAM_Write
&&&&&& WAM_Seek
&&&&&& WAM_IOControl
&&&&&& WAM_PowerDown
&&&&&& WAM_PowerUp
(4)&&& waveapi.res:这个是关键,如何从waveui.rc和替换的.wav文件生成一个新的waveapi.res文件,然后放在这个目录下。
一种做法是通过VS2005建立一个Win32 Smart Device应用程序的工程,将waveui.rc文件、头文件resource.h以及新的声音文件加入进去编译,生成的waveui.res,然后重命名为waveapi.res拷贝过来。不过这种方法的缺点是要依赖PB编译器以外的工具。&&&&
&&&& 完成以上文件操作之后,即可在PB当中单独编译这个目录,或者将这个目录加入到上一级目录的dirs文件当中编译,生成新的waveapi.dll到release目录,然后重新makeimg即可。&&&
关于waveapi.res生成方法的另外一种想法是使用WinCE自带的资源编译器Resource Compiler&rc.exe在命令行里面编译这个rc文件,碰到一些编译错误,在PB命令行环境里面(工程已经打开)windows.h这个头文件没有办法找到,造成编译错误,一时还没有办法继续下去。
不知道是否还有其他更好的办法,希望各位踏足此地的WinCE前辈们指点,十分感谢!
一位WINCE同好给我的回复:
我也发现可以不需要使用VS2005,单独用PlatformBuilder即可以编译BSP底下的WaveApi目录,
1.&&&&& 无法编译WAVEUI是因为sources File缺少WINCEOEM=1
2.&&&&& 修改sources File WINCETARGETFILES=$(_COMMONOAKROOT)/lib/$(_CPUINDPATH)/waveapi.res 为WINCETARGETFILES=$(_TARGETPLATROOT)/lib/$(_CPUINDPATH)/waveapi.res
3.&&&&& 修改makefile.inc $(_COMMONOAKROOT)/lib/$(_CPUINDPATH)/waveapi.res:$(_OBJDIR)/$(TARGETNAME).res 为$(_TARGETPLATROOT)/lib/$(_CPUINDPATH)/waveapi.res:$(_OBJDIR)/$(TARGETNAME).res
4.&&&&& 移除Dll目录下waveapi.res
5.&&&&& 修改Dll目录下的sources File将 TARGETLIBS=/ waveapi.res修改为 $(_TARGETPLATROOT)/lib/$(_CPUINDPATH)/waveapi.res
6.&&&&& 在该项目的Release目录下的bib文件的waveapi.dll.0804.mui必须Mask起来,否则没有作用,上述档案的0804为其项目的default language.
7.&&&&& 主要目的是将独立的waveapi.res导到参考TARGETPLATROOT下的waveapi.res
8.&&&&& 当然也可以加上DIR档案,由PlatformBuilder经由项目编译。
谢谢他的分享!
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:47955次
排名:千里之外
原创:10篇
转载:23篇
(1)(2)(21)(9)你的位置: &
> OPPO R9响铃振动设置教程
OPPO R9响铃振动设置教程
更新时间:
收藏本页(Ctrl+D)
手机扫描查看
扫描二维码
  OPPOR9响铃振动怎么设置?接下来统一小编教大家OPPOR9响铃振动如何设置,不了解的进来看看吧。
  1)首先我们先打开【设置】,然后找到【声音与振动】。(如下图)
  2)最后再把【响铃模式振动】那栏右边的椭圆往右拉打开即可。(如下图)
【上一篇】
【下一篇】
看完这篇文章有何感觉?
(您的评论需要经过审核才能显示,请文明发言!)&&剩余字数:
点击图片更换
统一文章资讯频道声明
1、 所有来源标注为统一下载站或统一文章的内容版权均为本站所有,若您需要引用、转载,请注明来源及原文链接即可,如涉及大面积转载,请来信告知,获取授权。
2、 本站所提供的文章资讯等内容均为作者提供、网友推荐、互联网整理而来,仅供学习参考,如有侵犯您的版权,请及时联系我们,并提供原文出处等,本站将在三个工作日内修正。
3、 若您的网站或机构从本站获取的一切资源进行商业使用,除来源为本站的资料需与本站协商外,其他资源请自行联系版权所有人。
4、 未经统一下载站允许,不得盗链、盗用本站资源;不得复制或仿造本网站,不得在非统一下载站所属的服务器上建立镜像,统一下载站对其自行开发的或和他人共同开发的所有内容、技术手段和服务拥有全部知识产权,任何人不得侵害或破坏,也不得擅自使用。
手机资讯分类
本站资源均收集整理于互联网,其著作权归原作者所有,如果有侵犯您权利的资源,请来信告知,我们将及时撤销相应资源。
Copy . All Rights Reserved.vivo X6S触屏声怎么关闭_手机技巧
vivo X6S触屏声怎么关闭?有多人跟小编一样特别讨厌触屏提示音的,却苦恼于不知道如何关闭么,下面小编就来教你们vivo
X6S触屏声关闭教程吧!
1)首先我们先打开【设置】,然后找到【声音】。(如下图)
2)接着将【触屏提示音】那栏右边的椭圆往左拉关闭即可。(如下图)
以上内容是手机技巧:内容提要:
vivo X6S触屏声怎么关闭?有多人跟小编一样特别讨厌触屏提示音的,却苦恼于不知道如何关闭么,下面小编就来教你们vivo X6S触屏声关闭教程吧!
1)首先我们先打开【设置】,然后找到【声音】。(如下图)
2)接着将【触屏提示音】那栏右边的椭圆往左拉关闭即可。(如下图) ...
vivo X6S触屏声怎么关闭相关内容
上海陆家嘴29秒视频百度云网盘完整版截图   5月25日晚上,微博上陆家嘴四季酒店的视频被顶上热搜,有司机发车,一则名为陆家嘴四季酒店的视频很快就被顶上了微博热...余罪百度云资源网络剧1-12集360网盘   余罪剧情简介   网剧余罪由新丽传媒联合爱奇艺共同制作,张睿执导,改编自常书欣同名IP小说《余罪》,由张一山、孙佳...   余罪   IP改编,张一山、吴优领衔主演的悬疑犯罪类型网剧《余罪》5月23日在爱奇艺上线开播后就获得不少网友喜欢,看过原著小说的粉丝对该部网剧更是期待非常...画 - G.E.M. 邓紫棋 词:G.E.M. 邓紫棋 曲:G.E.M. 邓紫棋 编曲:Lupo Groinig 爱情就像 蓝蓝天上 一片留白有你陪我想象 白马...  给你的歌 - G.E.M. 邓紫棋   词:G.E.M. 邓紫棋   曲:G.E.M. 邓紫棋   编曲:Lupo Groinig   怎么 都已经关了灯 ...你的位置: &
> 魅蓝E怎么关闭触屏声音教程
魅蓝E怎么关闭触屏声音教程
更新时间:
收藏本页(Ctrl+D)
手机扫描查看
扫描二维码
  魅蓝E怎么关闭触屏声音教程相信是很多用户想知道的吧,接下来统一小编跟大家分享一下魅蓝E如何关闭触屏声音教程,有兴趣的一起来了解一下。
  魅蓝E怎么关闭触屏声音教程
  1)首先进入设置菜单,找到【声音和振动】选项,打开它,在声音和振动界面里把【触摸反馈】的开关关闭。
  2)接着进入【音效】设置界面,在音效里面有个【触摸音效】的开关,同样把它关闭即可,这样就关闭了触屏声音了,还你安静的聊天环境。
【上一篇】
【下一篇】
看完这篇文章有何感觉?
(您的评论需要经过审核才能显示,请文明发言!)&&剩余字数:
点击图片更换
统一文章资讯频道声明
1、 所有来源标注为统一下载站或统一文章的内容版权均为本站所有,若您需要引用、转载,请注明来源及原文链接即可,如涉及大面积转载,请来信告知,获取授权。
2、 本站所提供的文章资讯等内容均为作者提供、网友推荐、互联网整理而来,仅供学习参考,如有侵犯您的版权,请及时联系我们,并提供原文出处等,本站将在三个工作日内修正。
3、 若您的网站或机构从本站获取的一切资源进行商业使用,除来源为本站的资料需与本站协商外,其他资源请自行联系版权所有人。
4、 未经统一下载站允许,不得盗链、盗用本站资源;不得复制或仿造本网站,不得在非统一下载站所属的服务器上建立镜像,统一下载站对其自行开发的或和他人共同开发的所有内容、技术手段和服务拥有全部知识产权,任何人不得侵害或破坏,也不得擅自使用。
手机资讯分类
本站资源均收集整理于互联网,其著作权归原作者所有,如果有侵犯您权利的资源,请来信告知,我们将及时撤销相应资源。
Copy . All Rights Reserved.OPPO R9Plus触屏拍照怎么设置_手机技巧
OPPO R9Plus触屏拍照怎么设置?于一些女生来讲,超大屏幕的手机拿来自拍如果没有自拍杆的话真的是相当难碰到快门键来拍照,那么能不能设置触摸屏幕就可拍照呢,下面就让小编来教你们OPPO
R9Plus触屏拍照设置教程吧!
首先我们先打开【相机】,然后点击上方第三个图标,最后点击【触屏】就设置完成了。(如下图)
以上内容是手机技巧:内容提要:
OPPO R9Plus触屏拍照怎么设置?于一些女生来讲,超大屏幕的手机拿来自拍如果没有自拍杆的话真的是相当难碰到快门键来拍照,那么能不能设置触摸屏幕就可拍照呢,下面就让小编来教你们OPPO R9Plus触屏拍照设置教程吧!
首先我们先打开【相机】,然后点击上方第三个图标,最后点击【触屏】就设置完...
OPPO R9Plus触屏拍照怎么设置相关内容
《好先生》正在热播中。好先生中江疏影饰演江莱,是江浩坤的妹妹,酒店管理专业。有很多网友想知道江疏影饰演的江莱在剧中使用的手机是什么牌子的?下面小编来说一下。 江...  乐视手机2指纹识别怎么设置?乐视手机2怎么设置指纹呢?下面小编就给大家介绍下乐视手机2指纹识别设置方法。  1)首先在手机界面上找到并点击进入【设置】,然后...好先生14集插曲嘉禾在酒吧时播放的DJ背景音乐是什么歌曲   《好先生》14集中留在家里陪伴奶奶的嘉禾,听着奶奶不停地念叨自己已逝的父亲,心里十分不是滋味。嘉禾...100C国产手机外观照片性能配置价格介绍 深圳佰利公司老总后台背景资料 今日,一则关于iPhone 6被判侵犯专利,并被北京知识产权局责令停止销售的消息迅速传开...电视剧《好先生》正在热播当中,剧中的服饰车子已经被小编扒了又扒,这回小编要扒的是孙红雷陆远的手机壁纸。陆远在美国混了几年,从剧中可以清楚看到其手机壁纸就是美国环...

我要回帖

更多关于 oppo r9 plus声音调节 的文章

 

随机推荐