Android2.3RTSP视频播放源码剖解

作者:金良([email protected]) csdn博客:http://blog.csdn.net/u012176591

Android2.3RTSP视频播放源码剖解_第1张图片

本博客是对我之前的博客《Android2.3播放RTSP视频出错》的中出现的问题的探究:

微笑mediaplayer.h位置:android-samsung-dev-full-rtl81XX\android-samsung-dev-full-rtl81XX\frameworks\base\include\media

   定义了多媒体的状态:

Android2.3RTSP视频播放源码剖解_第2张图片

下图是MediaPlayer类的状态转移图及其状态符号(图及说明见官网Android官网)

Android2.3RTSP视频播放源码剖解_第3张图片


微笑AwesomePlayer.cpp位置:android-samsung-dev-full-rtl81XX\android-samsung-dev-full-rtl81XX\frameworks\base\media\libstagefright

awesomeplayer会对url进行解析,由此来区分创建不同的媒体提取器(MediaExtractor),见博客《Android(2.3+)源码分析MediaPlayer之RTSP》

Android2.3RTSP视频播放源码剖解_第4张图片

微笑mediaplayer.cpp位置:android-samsung-dev-full-rtl81XX\android-samsung-dev-full-rtl81XX\frameworks\base\media\libmedia

错误09-21 21:41:00.484: E/MediaPlayer(5272): pause called in state 8源头:

Android2.3RTSP视频播放源码剖解_第5张图片

微笑mediaplayer.cpp位置:android-samsung-dev-full-rtl81XX\android-samsung-dev-full-rtl81XX\frameworks\base\media\libmedia
错误:09-21 21:41:00.589: E/MediaPlayer(5272): stop called in state 0

Android2.3RTSP视频播放源码剖解_第6张图片

微笑mediaplayer.cpp位置:android-samsung-dev-full-rtl81XX\android-samsung-dev-full-rtl81XX\frameworks\base\media\libmedia

错误:09-21 21:41:00.484: E/MediaPlayer(5272): error (-38, 0)

Android2.3RTSP视频播放源码剖解_第7张图片

微笑mediaplayer.cpp位置:android-samsung-dev-full-rtl81XX\android-samsung-dev-full-rtl81XX\frameworks\base\media\libmedia
错误:09-21 21:41:00.484: E/MediaPlayer(5272): start called in state 0

Android2.3RTSP视频播放源码剖解_第8张图片


微笑ARTSPConnection.cpp 位置:android-samsung-dev-full-rtl81XX\android-samsung-dev-full-rtl81XX\frameworks\base\media\libstagefright\rtsp

错误:09-21 21:41:02.691: E/ARTSPConnection(67): Error reading rtsp response.

Android2.3RTSP视频播放源码剖解_第9张图片

微笑mediaplayer.cpp位置:android-samsung-dev-full-rtl81XX\android-samsung-dev-full-rtl81XX\frameworks\base\media\libmedia
错误:09-22 07:05:52.953: E/MediaPlayer(4777): prepareAsync called in state 8

Android2.3RTSP视频播放源码剖解_第10张图片

代码分析:只有状态2和状态64时能够执行本方法,否则出错。而程序执行本方法时状态为8,故有”prepareAsync called in state 8“。

微笑MediaExtractor.cpp位置:android-samsung-dev-full-rtl81XX\android-samsung-dev-full-rtl81XX\frameworks\base\media\libstagefright

这个类是多媒体抽取器,根据视频格式返回不同的多媒体抽取器,视频格式有MP4、MP3、WAV、OGG、MP2等。

Android2.3RTSP视频播放源码剖解_第11张图片

微笑位置:frameworks\base\media\libmedia\AudioSystem.cpp: 

错误:09-25 03:09:10.136: W/AudioSystem(18147): AudioFlinger server died!

Android2.3RTSP视频播放源码剖解_第12张图片

微笑位置:frameworks\base\media\libmedia\IMediaDeathNotifier.cpp

错误:09-25 03:09:10.136: W/IMediaDeathNotifier(18147): media server died

Android2.3RTSP视频播放源码剖解_第13张图片


你可能感兴趣的:(源码,视频播放,android2.3,RTSP,libstage)