美文网首页
2023-09-06

2023-09-06

作者: up_up_up | 来源:发表于2023-09-06 10:20 被阅读0次

    背景:

    已有iOS项目中直播用了rtsp,但是在很多手机上第一次不能播放,有describe,但是setup的时候失败,continueAfterSETUP中resultCode返回-57,跟进去看发现subsession->initiate返回很慢,要5秒,setup这一步都没有成功发请求出去。所以一直在第一次不能播放,等大概6、7秒后再播放才可以。看了下live版本,发现是15年的.......所以果断更新吧。当然走了不少弯路,先是直接用源码替换,直接一大堆报错,有些还好解决,有些就无从下手,解决不完。后来用了19年的版本,好不容易编译通过了,又改通了中间层ourRTSPClient,在自己手机上可以播放了,可是换了个手机,发现第一次还是播放不了,问题依然存在!!!后面改来改去,竟然都不能编译通过了。于是又重新下载最新的2023.07.24版本,先是看了好多都说make编译,解决了问题编译过了,打成了4个库,说合并下库,然后倒出四个文件夹的include,应该也是可以的。但我还是钟情于用源码去编译,于是又开始用最新源码加入。

    环境:

    macOS Ventura 13.3.1

    Xcode 14.3.1

    iphone13 15.7

    遇到常见报错:

    1.'openssl/ssl.h' file not found

    解决:在Preprocessor Macros中添加NO_OPENSSL=1

    2.#include<xlocale.h>找不到

    解决:直接将#include<xlocale.h>头引入从宏提出来,屏蔽宏里面的

    3.Unknown type name 'NSString'

    解决:在prefix文件中添加#ifdef __OBJC__  ##endif将自己项目的OC包起来,因为pch文件是.c\.cpp\.m编译公用的,后加的.c .cpp文件和oc编译不兼容。

    弯路:

    1.openssl头文件报错去加载openssl的头文件,然后又去下载它的库,引入到工程里还是继续报错,目前不用openssl,直接在预编译选项中添加NO_OPENSSL=1就OK;

    2.make编译,然后头文件加库,这种方式更简单方便;源码编译要解决更多报错问题。

    相关文章

      网友评论

          本文标题:2023-09-06

          本文链接:https://www.haomeiwen.com/subject/mlihvdtx.html