图鸭VoIP SDK使用

获取方法

我们公司提供Windows,Mac,iOS,Android等平台的VoIP SDK,并附有相应的开发指南,您只需注册即可免费下载,或者移步码云下载。在开发过程中遇到的任何问题都可以参考我们提供的FAQ,或者在问答页面提出您的问题,我们会及时问您解答疑惑。

基于图鸭VoIP SDK的开发框架

为了方便开发者进行集成开发,我们的SDK把主要的网络通信模块和数据编码压缩与解码分发模块全部集成起来,开发者只需要简单调用几行API即可实现网络音视频通信,开发框架如下图所示。

客户端的主要工作便是音视频数据的采集和渲染,针对不同的平台有不同的解决方案,开发者可以下载我们提供的 Windows,Mac,Android,iOS平台的客户端demo作为参考。

部分API介绍

(1)采集端视频数据输入

/**

* 将视频数据传入VoIP

* @param &sourceID  枚举类型,表示设备类型

* @param *data  传入的视频数据指针

* @param size 传入数据大小

* @param width为视频宽度

* @param height为视频高度

* @param format视频格式,定义于voip_define.h,目前只支持YUV420P

* @param rotation 视频旋转角度,定义于voip_define.h

* @param front为前置摄像头的标识,在Windows端中默认为FALSE即可

**/

void setVoipVideoData(const std::string &sourceID, const void *data, uint32_t size,

uint16_t width,uint16_t height, int format, int rotation, bool front);

(2)采集端音频数据输入

/**

* 将音频数据传入VoIP

* @param &sourceID  枚举类型,表示设备类型

* @param *data 音频数据地址

* @param size 每一帧的数据大小

* @param samplerate为音频的采样率,目前只支持16000kps

**/

void setVoipAudioData(const std::string &sourceID, const void *data, uint32_t size, uint32_t samplerate);

(3)渲染端视频输出

/**

* 视频数据的传出

* @param isLocal 标志着本次传出的视频帧是否是本机视频

* @param image 包含了视频帧的各个属性,包括宽、高、格式、数据等

* @param usrID标志着本次传出的视频帧对应的usrID,对应接口(1)中的usrID

**/

virtual void onVideoFrame(bool isLocal, std::shared_ptr<VOIP::RawImage> image, uint32_t usrID) = 0;

(4)渲染端音频输出

/**

* 拉取音频数据

* @param sourceID 为枚举类型,表示设备的类型

* @param size为每次拉取的数据大小,这个值跟音频帧的大小有关,现在是320定值

**/

std::shared_ptr<RawSound> getVoipAudioData(const std::string &sourceID, uint32_t size);