-
最近我们在做一些BREW的欧美游戏移植到KDDI的外包项目,就声音问题做一下总结,留作备份。
1、 有的游戏里原来使用了IsoundPlayer接口, KDDI验证可能通不过,要换成IMedia 接口。
2、 一般KDDI的外包项目提供给我们的声音文件是spf格式或者mmf格式的音乐,
目前我们所使用声音的普遍播放方法是:
使用ISHELL_LoadResData把所有声音在游戏开始时加载入资源(游戏结束时记得释放),
为每个声音文件创建实例,准备就绪,并需要注册回调函数用来处理声音的循环播放等问题。
3、 关于mmf格式音乐播放的特殊问题
创建spf格式声音实例使用的CLASSID是AEECLSID_MEDIAPHR
而mmf格式声音的实例需要用到的CLASSID是AEECLSID_MEDIAMMF,
BREW中最多可以同时播放多达4个spf格式音乐,但只能同时播放1个mmf格式的。
所以BREW中使用AEECLSID_MEDIAMMF同时只能创建一个实例,这样的话带来一个问题,当你想播放新声音的时候必须把老的声音接口释放掉,重新创建新的接口实例,但所有声音资源仍然可以一直保留在内存里,只不过播放不同声音时候指针指向位置不同。
4、 关于中断(中断是声音最容易出问题地方)
中断是必须关闭所有声音,并且释放掉所有的声音接口实例,等到恢复时再重新创建,但是内存中的声音资源可以不用释放。
转载请保留以下信息:
作者(Author):smilelance
时间( Time ):2006.06.27
出处( From ):http://blog.csdn.net/smilelance