19.MoreTv_播放器模块_硬解
2017-04-09 15:17:17 0 举报
MoreTv播放器模块的硬解功能是一种先进的视频解码技术,它能够直接利用硬件设备(如GPU)进行视频解码,大大提高了视频播放的流畅度和清晰度。这种硬解技术不仅减少了对处理器的依赖,降低了能耗,同时也能够处理更高质量的视频文件。无论是4K、8K还是HDR视频,MoreTv播放器模块的硬解功能都能够轻松应对,为用户提供极致的观看体验。此外,硬解功能还支持多种视频格式,包括但不限于MP4、AVI、MKV等,满足了用户多样化的播放需求。总的来说,MoreTv播放器模块的硬解功能是一种高效、强大的视频播放解决方案。
作者其他创作
大纲/内容
mHttpAgentCallback.NotifyPlayBufferDone
mPlayerState = PlayerStates_Destroyed
loop
初始化MediaPlayer及系列监听器
mPlayerState = PlayerStates_Paused
SurfaceView/SurfaceCallBack
doSetDataSourceAndPlay
getTime
skip_complete_message = false
end
doResume
mPlayerState = PlayerStates_Idle
Y
SysWappedCommand
true
real_url = mHttpAgentCallback.startAgent(url)利用获取真正的url
destroy
mSurfaceView.setLayoutParams设置视频区域位置/大小
mMediaPlayer监听器置空
false
setTime
mMediaPlayer.reset
同步begin(锁)
skip_complete_message = true
HandlerThread的名字
mPlayerState = PlayerStates_Playing
PlayerCommandHelper
PlayerStates_Playing
使用代理
PlayerStates_PlaybackCompleted
mPlayerCommandHelper.setDataSourceAndPlay
mMediaPlayer.release
resume
mMediaPlayer.start
显示SurfaceView,初始化内部变量
doStop
doGetTime
SysMediaPlayer
内部变量置空
setHttpAgentCallback
mHttpAgentCallback.NotifyPlayBuffering(mMediaPlayer.getCurrentPosition()/1000)
invoke/弱引用
状态机状态转换根据操作及当前状态决定
mPlayerCommandHelper.destroy
doPause
PlayerStates_Idle
isPlaying
Unsupport 回调EVENT_MEDIA_PLAY_ERROR
设计思想:内部记录播放器状态。进行播放器操作时根据状态进行细致的操作。复杂性:在于进行外部操作时对当前状态的考虑更为完善,即鲁棒性。简单地说,就是不容易crash掉。在可执行时才执行,回调更准确
setVideoRegion
setIdAndPlay
setDataSourceAndPlay
mStartWhenPrepared
外度调用setDataSourceAndPlaystop...
实际播放命令执行者SysMediaPlayer注入
doDestroy
stop
PlayerStates_Prepared
非上述状态时,记录重新起播时的状态mStartWhenPrepared = false
mPlayerState =PlayerStates_Error
doSetDataSourceAndPlay/初始化
EventHandler
mMediaPlayer.setDataSource/setDisplay/setScreenOnWhilePlaying/setKeepScreenOn/setAudioStreamType
N
异常处理
PlayerStates_Destroyed
PlayerStates_Paused
MediaPlayer系列监听器
skip_complete_message
state == Preparing
start
mHttpAgentCallback.stopAgent
getDisplayMode
mPlayerState = PlayerStates_Preparing
内部变量置空,隐藏SurfaceView
记录当前播放时间/总时长
mMediaPlayer.preparedAsync
PlayerStates_Preparing mPlayerState PlaybackComplete
pause
非上述状态时,记录重新起播时的状态mStartWhenPrepared = true
mMediaPlayer.pause
mPlayerCommandHelper.resume
MediaPlayer
PlayerStates_Preparing
renewMediaPlayer
mMediaPlayer.stop
HandlerThread
返回true
PlayerStates_Stopping
mSurfaceHolder null
记录播放状态,当重新起播时以相应状态起播(setDataSource、seekComplete)
同步end(锁)
mPlayerCommandHelper.pause
mPlayerCommandHelper.stop
surfaceView移除
switchDefinition
0 条评论
下一页