API说明【JAVA纯播放SDK】
API接口
SDK由如下三类API组成:
- 基础API接口,负责基础的TCP连接管理(如登录、下线)、音视频码流收发、底层回调反馈等。相关代码位于SDInterface.java
- 推送API接口,负责屏幕、麦克风、扬声器的采集、音视频压缩编码等处理。相关代码位于SDInterfaceScreenPublishService.java
- 播放API接口,负责播放远端音视频。相关代码位于SDInterfacePlayer.java
用户根据业务情况选择对应API调用。基础SDK包括所有类别客户端均需调用的基础功能,纯发送型客户端无需调用播放API,纯播放型客户端无需调用推送API。
基础API
1、系统初始化
系统初始化主要完成日志模块初始化、服务器IP地址配置,该API在整个系统中只需要调用一次即可。
int SDsysinit(String strLogFileDir, byte byLogFileLevel)
参数:
@strLogFileDir,日志文件输出的目录,若目录不存在,SDK将自动创建,支持相对路径或绝对路径。
@byLogFileLevel,日志输出的级别,只有等于或者高于该级别的日志会输出到文件。级别定义位于Constant.java:
final byte LOG_LEVEL_DEBUG = 1;
final byte LOG_LEVEL_INFO = 2;
final byte LOG_LEVEL_WARN = 3;
final byte LOG_LEVEL_ERROR = 4;
final byte LOG_LEVEL_ALARM = 5;
final byte LOG_LEVEL_FATAL = 6;
final byte LOG_LEVEL_NONE = 7;
当指定为SD_LOG_LEVEL_NONE时,将不会生成日志文件。
返回值:返回0表示初始化成功,返回负数则为失败,负数值为其错误码。
2、系统反初始化
与 SDsysinit对应,系统退出前调用。
void SDsysexit()
参数:无
返回值:无
3、建立会话
int SDOnlineUser(String strLocalIp, int nLocalPort, String strRemoteIp, int nRemotePort);
参数:
@strLocalIp,表示使用的本地IP地址,当输入为空”时,将使用系统默认的网卡IP。作为发送方时,本地IP一般使用系统默认即可。作为接收方时一般需要指定本地IP并通过某些渠道告知发送方(比如发送方可根据接收方展示的投屏码获取其IP、端口信息)。
@nLocalPort,表示使用的本地端口,当输入为0时,将使用系统自动分配。
@strRemoteIp,表示远端IP地址,作为接收方时,输入为空””,作为发送方时输入对端IP。
@nRemotePort,表示远端端口,作为接收方时,输入为0,作为发送方时输入对端端口。
返回值:返回0表示登录成功,返回负数则为失败,负数值为其错误码。
4、结束会话
void SDOfflineUser();
参数:无
返回值:无
5、设置音视频传输参数
void SDSetTransParams(int nRedunMethod, int nRedunRatio, int nGroupSize, int nEnableNack, int nJitterBufTime);
参数:
@ nRedunMethod,上行冗余方法,0表示固定冗余度,1表示自动冗余度
@nRedunRatio,上行冗余比率,比如设置为30,则表示使用30%冗余。
@nGroupSize, 为上行FEC分组大小,512Kbps以下建议设置为8,512Kbps~1Mbps建议设置为16,1Mbps~2Mbps建议设置24,2Mbps以上建议设置28。
@nEnableNack,是否启用NACK功能,关于NACK请阅读相关文档,建议设置为1开启。
@nJitterBufTime,本客户端接收码流时的内部缓存时间初始值(毫秒),范围0~600。设置为0时,将关闭内部接收JitterBuff功能。对延时无过高要求的场景下建议设置150ms。
返回值:无
::: caution
本函数需在SDOnlineUser之前调用,本API的使用若有疑问,请联系技术支持获得帮助。
:::
播放API
播放API定义位于SDInterfacePlayer.java中。一个APP中可以创建多个播放实例实现多路播放功能。
1、播放初始化
void Init(Activity act, SurfaceViewRenderer surfaceView, boolean playAudioOnly, boolean playVideoOnly, boolean playAudioOnJava , int decodeMode)
参数:
@ act,播放实例所在的Activity。
@ surfaceView,画面渲染的surface view。
@ playAudioOnly,是否仅播放音频。仅播放音频时surfaceView可设置为null
@ playVideoOnly,是否仅播放视频。
@ playAudioOnJava,是否在JAVA层播放远端音频,否则将在C层播放。在开启软件AEC时,必须在JAVA层播放远端音频。其他情况下即支持在C层播放,也支持在JAVA层播放。
@ decodeMode,解码模式, 0(软解码) 1(硬解码) 2(硬解码优先)
返回值:无
::: caution
说明:需要在调用基础API SDsysinit之后调用本API。
:::
2、播放反初始化
void Destroy()
参数:无
返回值:无
3、开始播放
void startPlay(int renderWidth, int renderHeight)
参数:
@ renderWidth,画面渲染窗口的宽度。
@ renderHeight,画面渲染窗口的高度。
返回值:无
::: caution
说明:无需提供精确的renderWidth和renderHeight,只需要二者比率与surfaceView宽高比一致即可。当然若能获得精确宽高最佳。
:::
4、停止播放
void stopPlay()
参数:无
返回值:无
最后修改时间: 1 年前