ijkplayer时序图
stream_open:
frame_queue_init
packet_queue_init
init_clock
创建read_thread线程
创建video_refresh_thread线程
消息循环–回调函数实现
ui 和播放器核心直接的交互有以下几种方式:
- ui直接调用IjkMediaPlayer的接口
- ui发送消息给消息循环线程,然后调⽤IjkMediaPlayer的接口
- IjkMediaPlayer发消息给消息循环线程,线程调⽤ui的接口
UI发送消息给循环线程,通过c++11中bind实现回调函数:
void MainWind::OnPlayOrPause() {
mp_ = new IjkMediaPlayer();
mp_->ijkmp_create(std::bind(&MainWind::message_loop, this, std::placeholders::_1))
mp