音视频流媒体开发【三十四】FFmpeg+QT播放器3-播放器模块

2023-03-28  本文已影响0人  AlanGe

音视频流媒体开发-目录

重点内容:

  1. 理解播放器的框架

  2. 理解播放器的状态转换(后续章节继续深⼊讲解,这⾥先理解个⼤概即可)

  3. 理解播放器的代码逻辑

1 模块分析

2 播放器状态转换

播放器状态我们参考成熟的ijkplayer的状态转换实现。

状态转换图

注意图中的线条:
实线箭头连接的状态变化通过 API 调⽤完成,
虚线箭头连接的状态变化是通过 播放器内部执⾏完特定任务或者发⽣错误 ⽽⾃动发⽣的状态变化。

状态释义

可播放状态

prepared、 started、 paused、 completed。
可播放状态中可以通过调⽤ start函数 转化为 started 状态,并且进⾏媒体播放。

稳定状态

idle、 initialized、 prepared、 paused、 completed、 stopped、 end、error。
稳定状态只可以通过 API 调⽤转换为其他的状态,不会⾃主发⽣状态变化。

⾮稳定状态

async_preparing、 started。
⾮稳定状态会在⼀定条件下⾃动转变为其他状态,也可以通过 API 调⽤进⾏状态跳转。

完整转换 API

idle
initialized
async_preparing
prepared
started
paused
completed
stoped
error
end

3.参考

https://blog.csdn.net/weixin_52622200/article/details/114880502

上一篇下一篇

猜你喜欢

热点阅读