BREW模拟器模拟流媒体播放
本文原创,如有引用请注明出处,谢谢
开发高通平台的软件,经常会遇到硬件还没投板,软件无法调试和模拟的情况.下面我就介绍一下如何在没有硬件板子的情况下如何模拟和调试流媒体播放.
首先要介绍一下IMedia接口,高通将多种格式的音频文件和视频文件都抽象成了一个类,这个类就是IMedia接口,当用户要播放一个文件的时候,首先要解析文件类型,创建IMedia类的对象.注册回调函数,当要播放视频的时候,你会调用IMEDIA_EnableFrameCallback(pThis->pIMedia, TRUE);来启动帧回调.高通在播放视频的时候,刷屏方式有两种,一种是由上层应用开发人员,调用IMEDIA_EnableFrameCallback(pThis->pIMedia, TRUE);接口来主动刷新屏幕,应用程序开发人员只需在注册的回调函数中获取MM_STATUS_FRAME状态.进行手动刷新屏幕就可以.另一种方式是从oem层刷新的,也就是说是自动刷新的,这时用户无需调用IMEDIA_EnableFrameCallback(pThis->pIMedia, TRUE)函数.
一个很明显的例子提供给各位参考.在高通BREW3.1.5的mediaplayer.c文件中就是自动刷屏的.有的用户可能会说,BREW3.1.5模拟器本身就不支持视频播放,我想告诉各位的时你们错了.BREW3.1.5是支持视频播放的,只是你少了一个播放视频的IMediaMPEG4.dll文件.这个IMediaMPEG4.dll你可以在高通web上直接下载到.你可以把IMediaMPEG4.dll文件放到.. /BREW 3.1.5/sdk/bin/Modules的下面,在选择device的时候,你要选择DevicePack4,因为这个device已经设置好视频播放的相关功能参数,你无需再次设置.接着请修改mediaplayer.c代码,在播放视频的时候,主动调用
IMEDIA_EnableFrameCallback(pThis->pIMedia, TRUE)函数,在回调函数中,处理MM_STATUS_FRAME状态,在MM_STATUS_FRAME中处理相关Bitmap的操作.再试试你的模拟器是不是已经可以播放视频了呢?
如果视频调试通过了,再播放流媒体的时候,如果你的流程正确.只要修改一下device的配置就可以播放流媒体了.打开device目录下的.dpk文件,修改MPEG4 Configuration下面的features驱动streamingplay保存后再编译,一下,ok,如果你的流程正确,应该可以播放了.如果再调试过程中,遇到只有声音,没有bitmap的情况,建议你将函数的处理流程更改一下.先进入界面再play.不信你可以试试.
用模拟器开发,可以大大缩短开发的时间,提供开发工作效率,如果再ARM开发,编译连接下载最快也要20分钟,模拟器则不同了.短短几秒钟就可以立刻看到效果.之所以写这片文章就是为了各位再高通平台开发的同仁,高效的开发,而不必把大量的时间放在编译,连接,下载等环节中..