【音视频】pjsua2库:Endpoint、Call类接口详解
1、Endpoint
1.1 基本接口
1)Endpoint 表示 pjsua 库的一个实例,它是一个单例;
2)Version libVersion() const:获取 pjlib 库版本号:
3)创建:void libCreate() ;
实例化 pjsua 应用程序。应用程序必须在调用任何其他函数之前调用此函数,以确保底层库已正确初始化。
此函数返回成功后,应用程序必须在退出之前调用libDestroy()
4)获取库状态:pjsua_state libGetState() const;
5)初始化配置:void libInit( const EpConfig &prmEpConfig) PJSUA2_THROW(Error); 在libCreate之后调用
6)启动:void libStart() PJSUA2_THROW(Error); 在libInit之后调用
7)void libRegisterThread(const string &name):将当前线程注册为 PJSIP 库的 “工作线程” ,
PJSIP 库默认的工作线程是调用 libStart() 的线程(通常是主线程)。
如果需要在其他线程中调用 PJSIP API(如发起呼叫、处理媒体事件),必须先通过 libRegisterThread() 将该线程注册为工作线程,否则可能导致线程不安全(如数据竞争、回调处理异常)。
调用 libStart() 的主线程会被自动注册为工作线程,无需手动调用 libRegisterTh