一沈自、如果還未搭建好項(xiàng)目元媚,可參考前面的文檔
二断盛、設(shè)置config
IJKPlayer默認(rèn)不支持RTSP,需要改配置肛跌。
- 第一步:找到 module-lite.sh 文件夾
文件路徑
- 第二步:修改配置艺配,如果存在,則進(jìn)行修改衍慎;如果不存在转唉,則添加。
export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-protocol=rtp"
export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-demuxer=rtsp"
添加配置
- 第三步:保存后稳捆,用新的module.sh進(jìn)行替換
cd /Users/xue/Downloads/RTSP/ijkplayer-ios/config
rm module.sh //刪除原來(lái)的
ln -s module-lite.sh module.sh //用修改過(guò)的替換
- 第四步:修改源文件
文件路徑
函數(shù)如下
static int packet_queue_get_or_buffering(FFPlayer *ffp, PacketQueue *q, AVPacket *pkt, int *serial, int *finished)
{
//-------------------- remove old ------------------------
/*
assert(finished);
if (!ffp->packet_buffering)
return packet_queue_get(q, pkt, 1, serial);
while (1) {
int new_packet = packet_queue_get(q, pkt, 0, serial);
if (new_packet < 0)
return -1;
else if (new_packet == 0) {
if (q->is_buffer_indicator && !*finished)
ffp_toggle_buffering(ffp, 1);
new_packet = packet_queue_get(q, pkt, 1, serial);
if (new_packet < 0)
return -1;
}
if (*finished == *serial) {
av_packet_unref(pkt);
continue;
}
else
break;
}
return 1;
*/
//-------------------- add new ------------------------
while (1) {
int new_packet = packet_queue_get(q, pkt, 1, serial);
if (new_packet < 0){
new_packet = packet_queue_get(q, pkt, 0, serial);
if(new_packet < 0)
return -1;
}else if (new_packet == 0) {
if (!finished)
ffp_toggle_buffering(ffp, 1);
new_packet = packet_queue_get(q, pkt, 1, serial);
if (new_packet < 0)
return -1;
}
if (finished == *serial) {
av_free_packet(pkt);
continue;
}
else
break;
}
return 1;
}
- 第五步:重復(fù)ijkplay(一)的操作酝掩,再重新編譯一遍
重新編譯即可
- 第六步:合并生成新的Framework
參考:
ijkplyer (一)- iOS集成基本使用
基本完成!>烊帷期虾!