metaRTC6.0标准版C++API

概述

metaRTC6.0标准版架构进行了重构,本篇文章将介绍metaRTC6.0标准版 C++ API和回调接口。

C++接口YangPeerConnection2

头文件:include/yangrtc/YangPeerConnection2.h

class YangPeerConnection2 {
public:
	YangPeerConnection2(YangAVInfo* avinfo,YangStreamConfig2* streamConfig);
	virtual ~YangPeerConnection2();
	YangStreamConfig* streamConfig;
public:
//加入audio track
	int32_t addAudioTrack(YangAudioCodec codec);
//加入video track
	int32_t addVideoTrack(YangVideoCodec codec);
//设置direction
	int32_t addTransceiver(YangRtcDirection direction);
//生成本端sdp
	int32_t createOffer( char **psdp);
//交换sdp时,获取对端sdp后,生成本地sdp以回传回对端
	int32_t createAnswer(char* answer);
//http侦听信令侦听到请求后,生成http的answer sdp
	int32_t createHttpAnswer(char* answer);
//生成datachnnel 
    int32_t createDataChannel();
//生成数字证书
    int32_t generateCertificate();
//启动metaRTC,开始ice的搜集/连接验证等,启动ice/dtls等webrtc通信
	int32_t setLocalDescription(char* sdp);
//接收远程sdp
	int32_t setRemoteDescription(char* sdp);
//封装了srs/zlm的信令交换并启动metaRTC
	int32_t connectSfuServer();
//连接支持whip/whep协议的sfu/mcu
    int32_t connectWhipWhepServer(char* url);
//关闭metartc
	int32_t close();
//是否活连接
	int32_t isAlive();
//是否已经连接
	int32_t isConnected();
//推音频流
	int32_t on_audio(YangFrame* audioFrame);
//推视频流
	int32_t on_video(YangFrame* videoFrame);
//推送datachannel消息
	int32_t on_message(YangFrame* msgFrame);
//加入远程candidate 专业版实现,标准版待并入
	int32_t addIceCandidate(char* candidateStr);
//发送rtc系统消息
	int32_t sendRtcMessage( YangRtcMessageType mess);
};

C++回调抽象类

//数据接收调用接口
class YangReceiveCallback2 {
public:
	YangReceiveCallback2(){};
	virtual ~YangReceiveCallback2(){};

	virtual void receiveAudio(YangFrame *audioFrame)=0;

	virtual void receiveVideo(YangFrame *videoFrame)=0;

	virtual void receiveMsg(YangFrame *videoFrame)=0;
};
//ICE回调接口
class YangIceCallback2{
public:
	YangIceCallback2(){};
	virtual ~YangIceCallback2(){};

	virtual void onIceStateChange(int32_t uid,YangIceCandidateState iceState)=0;

	virtual void onConnectionStateChange(int32_t uid,YangRtcConnectionState connectionState)=0;

	virtual void onIceCandidate(int32_t uid,char* sdp)=0;

	virtual void onIceGatheringState(int32_t uid,YangIceGatheringState gatherState)=0;
};
//RTC回调接口
class YangRtcCallback2{
public:
	YangRtcCallback2(){};
	virtual ~YangRtcCallback2(){};

	virtual void setMediaConfig(int32_t puid,YangAudioParam* audio,YangVideoParam* video)=0;

	virtual void sendRequest(int32_t puid,uint32_t ssrc,YangRequestType req)=0;
};

struct YangStreamConfig2{
	YangStreamConfig* streamConfig;
	YangReceiveCallback2* receiveCallback;
	YangRtcCallback2* rtcCallback;
	YangIceCallback2* iceCallback;
};

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

metaRTC

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值