全部产品
存储与CDN 数据库 安全 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网
视频直播

主播端接口

更新时间:2017-09-30 12:46:59

AlivcVideoChatHost的接口和事件通知

接口名称 功能描述
prepareToPublish 准备推流,建立预览界面
startToPublish 开始推流
stopPublishing 结束推流
finishPublishing 结束推流预览
launchChat 开始连麦
launchChats 开始连麦,适用于邀请多人连麦
addChats 增加连麦人数
removeChats 减少连麦人数
abortChat 结束连麦
reconnectChat 重新打开播放器
setPlayerParam 设置连麦后播放参数
setPublisherParam 动态设置推流配置参数
switchCamera 切换前后摄像头
zoomCamera 缩放摄像头
focusCameraAtAdjustedPoint 聚焦摄像头到某个位置
setFilterParam 设置滤镜参数
pause 后台暂停,没有视频有音频
resume 恢复到前台
getPublisherPerformanceInfo 获取推流性能参数
getPlayerPerformanceInfo 获取连麦后播放性能参数
getSDKVersion 获取SDK版本号
publisherMuteMode 推流是否静音
事件通知 内容描述
AlivcVideoChatMemoryPool 内存不足
AlivcVideoChatPublisherOpenFailed 推流端打开失败。可能是网络未连接或推流地址错误
AlivcVideoChatPublisherSendDataTimeout 推流端发送数据超时
AlivcVideoChatPublisherNetworkPool 推流端网络差
AlivcVideoChatPublisherVideoCaptureDisabled 视频采集被禁止
AlivcVideoChatPublisherAudioCaptureDisabled 音频采集被禁止
AlivcVideoChatPublisherAudioCaptureError 音频采集失败(如电话中断)
AlivcVideoChatPublisherVideoEncoderInitFailed 视频端初始化失败
AlivcVideoChatPublisherAudioEncoderInitFailed 音频端初始化失败
AlivcVideoChatPublisherEncodeVideoFailed 推流端视频编码失败
AlivcVideoChatPublisherEncodeAudioFailed 推流端音频编码失败
AlivcVideoChatPlayerOpenFailed 播放器打开失败。可能是网络未连接或播放地址错误
AlivcVideoChatPlayerStartBuffering 播放端缓冲开始
AlivcVideoChatPlayerEndBuffering 播放端缓冲结束
AlivcVideoChatPlayerFirstFrameRender 播放端首帧显示
AlivcVideoChatPlayerReadPacketTimeout 播放端下载数据超时
AlivcVideoChatPlayerNoDisplayViewer 播放端无显示窗口
AlivcVideoChatPlayerInvalidCodec 播放端音视频格式无效


接口的具体描述如下:

prepareToPublish

  1. - (int) prepareToPublish: (UIView*)view
  2. width:(int)width
  3. height:(int)height
  4. publisherParam:(NSDictionary*) publlisherParam;

功能:准备推流。调用该函数后将对音视频采集的硬件设备进行初始化,对音视频编码器进行初始化,并开启美颜等滤镜。同时,主播可以预览到经过滤镜处理以后的视频效果。

参数:

view:推流或连麦过程中供主播预览的view。

width、height:推流视频的宽和高。

publisherParam:主播推流的参数。使用NSDictionary的方式,以便于后续的扩展。目前可以设置的参数如下:

  • ALIVC PUBLISHER PARAM_ UPLOADTIMEOUT: 推流上传超时时间,单位ms,默认8000。
  • ALIVC PUBLISHER PARAM_ CAMERAPOSITION: 选择前后摄像头,枚举成员:cameraPositionFront = 0,cameraPositionBack = 1。默认前置。
  • ALIVC PUBLISHER PARAM_ LANDSCAPE:推流横屏/竖屏,NO为竖屏,YES为横屏。默认竖屏。
  • ALIVC PUBLISHER PARAM_ MAXBITRATE:推流最大码率,单位Kbps。默认1500。
  • ALIVC PUBLISHER PARAM_ MINBITRATE:推流最小码率,单位Kbps。默认200。
  • ALIVC PUBLISHER PARAM_ ORIGINALBITRATE: 推流初始码率,单位Kbps。默认500。
  • ALIVC PUBLISHER PARAM_ AUDIOSAMPLERATE: 推流音频采样率,单位Hz。固定32000,暂不可调。
  • ALIVC PUBLISHER PARAM_ AUDIOBITRATE: 推流音频码率,单位Kbps。固定32,暂不可调。

返回值: 0表示成功;非0表示失败。

备注:目前视频编码采用的是硬编码。

startToPublish

  1. - (int) startToPublish: (NSString*)url;

功能:开始推流。调用该函数将启动音视频的编码,并将压缩后的音视频流打包上传到服务器。

参数:

url:主播推流地址。

返回值: 0表示成功;非0表示失败。

备注:此处的推流仅仅是主播单向的直播推流,与连麦这种双向互动没有关系。必须先调用函数prepareToPublish后才能调用该函数。

stopPublishing

  1. - (int) stopPublishing;

功能:结束推流。调用该函数将结束本次的直播推流,并关闭音视频编码功能,但采集、滤镜功能仍然运行,预览功能仍然保留。

参数:无。

返回值: 0表示成功;非0表示失败。

备注:若在连麦状态下调用该函数,则sdk会先停止连麦,再结束推流。

finishPublishing

  1. - (int) finishPublishing;

功能:退出推流直播。调用该函数将停止采集、滤镜功能,销毁预览窗口,释放所有资源。

参数:无。

返回值: 0表示成功;非0表示失败。

备注:若调用了函数startToPublish,则必须调用函数stopPublishing以后才可以调用该函数。

launchChat

  1. - (int) launchChat:(NSURL*)url view:(UIView*)view;

功能:开始连麦。这种连麦可以是与观众的连麦,也可以是与另一个主播进行的连麦。调用该函数启动播放器,将连麦参与方上传的视频在另一个窗口中播放出来。

参数:

url:用于播放连麦参与方的视频的地址。

view:播放连麦参与方视频的窗口。

返回值: 0表示成功;非0表示失败。

备注:必须调用函数startToPublish后才能调用该函数。

abortChat

  1. - (int) abortChat;

功能:结束连麦。调用该函数将关闭播放器,销毁用于连麦的播放窗口。

参数:无。

备注:无。

launchChats

  1. -(int) launchChats:(NSArray *)urls views:(NSArray *)views;

功能:开始连麦。在此之前,主播处于纯推流状态。主播可以对一个人发起连麦,也可以对多个人发起连麦。

参数:

urls:所有连麦参与方的播放地址,NSURL数组。

views:所有连麦参与方的播放窗口,UIView数组。

返回值: 0表示成功;非0表示失败。

备注:必须调用函数startToPublish后才能调用该函数。url的个数和views的个数必须相同。

addChats

  1. -(int) addChats:(NSArray *)urls views:(NSArray *)views;

功能:增加连麦人数。在此之前,主播正在与一个或多个人连麦。新增的连麦人数可以是一个人,也可以是多个人。

参数:

urls:所有新增连麦者的播放地址,NSURL数组。

views:所有新增连麦者的播放窗口,UIView数组。

返回值: 0表示成功;非0表示失败。

备注:必须调用函数launchChats后才能调用该函数。url的个数和views的个数必须相同。

removeChats

  1. -(int) removeChats:(NSArray *)urls;

功能:减少连麦人数。在此之前,主播正在与一个或多个人连麦。减少的连麦人数可以是一个人,也可以是多个人。

参数:

urls:所有退出连麦者的播放地址,NSURL数组。

返回值: 0表示成功;非0表示失败。

备注:必须调用函数launchChats后才能调用该函数。允许所有的连麦参与者都退出连麦,此时,调用removeChats与abortChat功能相同。

reconnectChat

  1. -(int) reconnectChat:(NSURL *)url;

功能:当连麦时,某个连麦者的视频播放超时,调用reconnectChat进行重新打开。

参数:

url:播放超时的视频的url。

返回值: 0表示成功;非0表示失败。

备注:无。

setPlayerParam

  1. -(void) setPlayerParam:(NSDictionary*)playerParam;

功能:设置连麦过程中播放器相关的配置参数。

参数:

playerParam:播放器相关的配置参数。使用NSDictionary的方式,以便于后续的扩展。目前可以设置的参数如下:

  • ALIVC PLAYER PARAM_ DOWNLOADTIMEOUT: 连麦播放缓冲超时时间,单位ms。默认15000。
  • ALIVC PLAYER PARAM_ DROPBUFFERDURATION: 连麦播放开始丢帧阈值,单位ms。默认1000。
  • ALIVC PLAYER PARAM_ SCALINGMODE: 连麦播放显示模式,目前支持2种。枚举成员scalingModeAspectFit = 0,代表等比例缩放,若显示窗口宽高比与视频不同则会有黑边;scalingModeAspectFitWithCropping = 1,代表带切边的等比例缩放,若显示窗口宽高比与视频不同,则自动对视频裁边以撑满显示窗口。 默认值为1。

备注:这些参数可以在连麦开始之前设置,也可以在连麦过程中进行调整,连麦过程中调整将会以最新的Param进行播放。

switchCamera

  1. - (int) switchCamera;

功能:切换摄像头。

参数:无。

返回值: 0表示成功;非0表示失败。

备注:该函数可以在推流和连麦的过程中随时进行调用。

zoomCamera

  1. - (int) zoomCamera:(CGFloat)zoom;

功能:摄像头放大倍率。调用该函数将对当前视频进行光学放大。放大后的视频将显示在预览窗口。

参数:

zoom:放大倍率。最小值为1.0,表示不放大;最大值maxZoom与设备本身相关,且上限设置为3.0,即maxZoom = min(maxZoom,3.0)。

返回值: 0表示成功;非0表示失败。

备注:该函数仅对后置摄像头有效。

focusCameraAtAdjustedPoint

  1. - (int) focusCameraAtAdjustedPoint:(CGPoint)point autoFocus:(BOOL)autoFocus;

功能:聚焦到某个设置的点。调用该函数可以聚焦到预览窗口上人为指定的某个点。

参数:

point:需要聚焦到的点的位置。(0.0,0.0)代表左上角,(1.0,1.0)代表右下角,(0.5,0.5)代表中心点。

autofocus:自动聚焦模式。0代表只自动聚焦一次,以后将按照固定的景深来进行聚焦;1代表持续自动聚焦,当拍摄的物体变换时仍然会自动调整景深来聚焦。

返回值: 0表示成功;非0表示失败。

备注:无。

setFilterParam

  1. -(void) setFilterParam:(NSDictionary*)param;

功能:设置滤镜的相关参数。

参数:

param:滤镜相关的配置参数。使用NSDictionary的方式,以便于后续的扩展。目前只有一个美颜的滤镜,可以设置的参数如下:

  • ALIVC FILTER PARAM_ BEAUTY_ON: 美颜是否开启,YES为开启美颜,NO关闭美颜

备注:该函数可以在推流前调用,也可以在推流和连麦过程中调用。

pause

  1. -(void) pause;

功能:暂停推流或连麦。在推流或连麦过程中,主播如果退入后台、锁屏或有电话接入,可以调用本接口。此时,主播可以推送或播放音频(若在打电话,则音频也不推送或播放),只需要在app的Capablities中打开Background Mode选项,选中Audio,AirPlay and Picture in Picture。若不选中上述选项,则不会推送或播放音频。

参数:无

返回值:无。

备注:无。

resume

  1. -(void)resume;

功能:恢复推流或连麦。在推流或连麦过程中,主播如果发生退入后台、锁屏或有电话接入的情况,希望能够回到前台继续播放或推流,可以调用本接口。

参数:无

返回值:无。

备注:必须先调用pause,然后才能调用resume。

getPublisherPerformanceInfo

  1. -(AlivcPublisherPerformanceInfo*) getPublisherPerformanceInfo;

功能:获得与推流相关的性能参数

参数:无

返回值:推流性能参数。具体如下:

  • audioEncodedBitrate: 音频编码速度,单位Kbps
  • videoEncodedBitrate: 视频编码速度,单位Kbps
  • audioUploadedBitrate: 音频上传速度,单位kbps
  • videoUploadedBitrate: 视频上传速度,单位kbps
  • audioPacketsInBuffer: 缓冲的音频帧数
  • videoPacketsInBuffer: 缓冲的视频帧数
  • videoEncodedFps: 视频编码帧率
  • videoUploadedFps: 视频上传帧率
  • videoCaptureFps: 视频采集帧率
  • videoEncoderParamOfBitrate: 当前视频编码器的设置码率,单位kbps
  • currentlyUploadedVideoFramePts: 当前上传的视频帧的pts,单位ms
  • currentlyUploadedAudioFramePts: 当前上传的音频帧的pts,单位ms
  • previousKeyframePts: 上一个关键帧的pts,单位ms
  • totalFramesOfEncodedVideo: 视频编码总帧数
  • totalTimeOfEncodedVideo: 视频编码总耗时,单位ms
  • totalSizeOfUploadedPackets: 上传的音视频流总量,单位Kbyte
  • totalTimeOfPublishing: 当前推流的总时间,单位ms
  • totalFramesOfVideoUploaded: 上传的视频帧总数
  • dropDurationOfVideoFrames: 视频丢帧的累计时长,单位ms
  • audioDurationFromCaptureToUpload: 当前音频帧从采集到上传的耗时,单位ms
  • videoDurationFromCaptureToUpload: 当前视频帧从采集到上传的耗时,单位ms

getPlayerPerformanceInfo

  1. -(AlivcPlayerPerformanceInfo*) getPlayerPerformanceInfo;

功能:获得与播放相关的性能参数

参数:无

返回值:播放性能参数。具体如下:

  • videoPacketsInBuffer: 缓冲的视频帧数
  • audioPacketsInBuffer: 缓冲的音频帧数
  • videoDurationFromDownloadToRender: 视频从下载到播放的耗时,单位ms
  • audioDurationFromDownloadToRender: 音频从下载到播放的耗时,单位ms
  • videoPtsOfLastPacketInBuffer: 缓冲区中最后一帧视频的pts
  • audioPtsOfLastPacketInBuffer: 缓冲区中最后一帧音频的pts

publisherMuteMode

  1. BOOL publisherMuteMode;

功能:设置推流端的静音模式,静音模式下音频采集继续,但是音频流不会推送。

参数:无。

备注:无

getSDKVersion

  1. - (NSString *) getSDKVersion;

功能:获取版本信息。

参数:无

返回值:版本号。

本文导读目录