mVideoEvent。这个事件执行时会调用函数onVideoEvent()。这个函数通过调用
mVideoSource->read(&mVideoBuffer,
&options)进行视频解码。音频解码通过mAudioPlayer实现。
视频解码后通过mVideoSource->read读取一帧帧的数据,放到mVideoBuffer中,最后通过
mVideoRenderer->render(mVideoBuffer)把视频数据发送到显示模块。当需要暂停或停止时,调用
cancelPlayerEvents来提交事件用来停止解码,还可以选择是否继续缓冲数据。
5、 代码标记Log
依据第4》项StageFright描述的Vide视频播放流程,作Log标记跟踪视频DATA获取、CODEC过程。从AwesomePlayer.cpp中方法着手,步骤如下:
在修改的/mydroid/frameworks/base/media/libstagefrigh/下,用mm编译,并调试直到生成相应的.so文件。stagefright框架注:允许单模块编译时,需事先在/mydroid下允许. ./build/envsetup.sh文件。
在/mydroid/目录下make进行整体编译,生成system.img文件。说明:先单模块编译,后再整体编译的好处是,可以缩短调试编译的时间。
将system.img文件copy到/android-sdk-linux/platforms/android-8/下。注意:事先备份原有的system.img。
带sdcard启动模拟器,在/android-sdk-linux/tools/下运行./adb shell文件,再运行logcat
打开Gallery选择视频文件运行,并同步查看log。
反馈结果如下:
I/ActivityManager( 61): Starting: Intent {
act=android.intent.action.VIEW
dat=content://media/external/video/media/5 typ=video/mp4
cmp=com.cooliris.media/.MovieView } from pid 327
I/RenderView( 327): OnPause RenderView com.cooliris.media.RenderView@4054a3b0
E/AwesomePlayer( 34): beginning AwesomePlayer... by jay remarked...
E/AwesomePlayer( 34): returning AwesomeEvent...by jay remarked...
E/AwesomePlayer( 34): returning AwesomeEvent...by jay remarked...
E/AwesomePlayer( 34): returning AwesomeEvent...by jay remarked...
E/AwesomePlayer( 34): returning AwesomeEvent...by jay remarked...
E/AwesomePlayer( 34): ending AwesomePlayer... by jay remarked...
E/AwesomePlayer( 34): setting video source now... by jay remarked...
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/tongxinshuyu/article-50196-5.html
我们的海军和先进武器在哪
台湾人民也想两岸统一