ijkplayer底层基于FFmpeg的ffplay.c进行改造与扩展,中间层进行Android与iOS的适配,Android需要添加JNI接口,而iOS可以直接调用c/c++。IJK作为一款优秀的开源跨平台播放器,具备完整的状态机,而且播放时序清晰。 目录一、ijkplayer时序图 二、ijkplayer状态图 1、状态机 2、状态分析 3、状态迁移 一、ijkplayer时序图以iOS移动端的播放时序为例,从IJKMoviePlayerViewController.m,到IJKFFMoviePlayerController.m,中间层是ijkplayer_ios.m,再到ijkplayer.c,最后是ff_ffplay.c。具体时序如下图所示: 二、ijkplayer状态图1、状态机 ijkplayer的状态包括:idle、initialized、async_preparing、prepared、started、paused、stopped、completed、error、end共10种state。整体的状态机state machine如下: |
ijkplayer的时序与状态图分析
于 2022-11-19 17:04:55 首次发布
本文深入探讨了ijkplayer的内部工作时序和状态变化,重点分析了其在Android平台上的运行机制,包括ffmpeg库的使用、音视频解码流程以及ijkplayer的生命周期管理。通过对ijkplayer状态图的解析,帮助开发者更好地理解和优化播放器的性能。
摘要由CSDN通过智能技术生成