作者:金良([email protected]) csdn博客:http://blog.csdn.net/u012176591
本博客是对我之前的博客《Android2.3播放RTSP视频出错》的中出现的问题的探究:
mediaplayer.h位置:android-samsung-dev-full-rtl81XX\android-samsung-dev-full-rtl81XX\frameworks\base\include\media
定义了多媒体的状态:
下图是MediaPlayer类的状态转移图及其状态符号(图及说明见官网Android官网)
AwesomePlayer.cpp位置:android-samsung-dev-full-rtl81XX\android-samsung-dev-full-rtl81XX\frameworks\base\media\libstagefright
awesomeplayer会对url进行解析,由此来区分创建不同的媒体提取器(MediaExtractor),见博客《Android(2.3+)源码分析MediaPlayer之RTSP》
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源头:
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
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)
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
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.
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
代码分析:只有状态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等。
位置:frameworks\base\media\libmedia\AudioSystem.cpp:
错误:09-25 03:09:10.136: W/AudioSystem(18147): AudioFlinger server died!
位置:frameworks\base\media\libmedia\IMediaDeathNotifier.cpp
错误:09-25 03:09:10.136: W/IMediaDeathNotifier(18147): media server died