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

观众端(或副麦)

更新时间:2017-09-28 22:50:40

AlivcVideoChatParter的接口和事件通知

接口名称 功能描述
startToPlay 开始观看直播
stopPlaying 结束观看直播
onlineChat 开始连麦
onlineChats 开始多人连麦
addChats 添加连麦
removeChats 移除连麦
offlineChat 结束连麦
setPlayerParam 设置播放参数
switchCamera 切换前后摄像头
zoomCamera 缩放摄像头
focusCameraAtAdjustedPoint 聚焦摄像头到某个位置
setFilterParam 设置滤镜参数
getPublisherPerformanceInfo 获取推流性能参数
getPlayerPerformanceInfo 获取连麦后播放性能参数
publisherMuteMode 推流是否静音
pause 连麦进入后台暂停
resume 恢复到前台
getSDKVersion 获取SDK版本号
事件通知 内容描述
AlivcVideoChatMemoryPool 内存不足
AlivcVideoChatPublisherOpenFailed 推流端打开失败。可能是网络未连接或推流地址错误
AlivcVideoChatPublisherSendDataTimeout 推流端发送数据超时
AlivcVideoChatPublisherNetworkPool 推流端网络差
AlivcVideoChatPublisherVideoCaptureDisabled 视频采集被禁止
AlivcVideoChatPublisherAudioCaptureDisabled 音频采集被禁止
AlivcVideoChatPublisherAudioCaptureError 音频采集失败(如电话中断)
AlivcVideoChatPublisherVideoEncoderInitFailed 视频端初始化失败
AlivcVideoChatPublisherAudioEncoderInitFailed 音频端初始化失败
AlivcVideoChatPublisherEncodeVideoFailed 推流端视频编码失败
AlivcVideoChatPublisherEncodeAudioFailed 推流端音频编码失败
AlivcVideoChatPlayerOpenFailed 播放器打开失败。可能是网络未连接或播放地址错误
AlivcVideoChatPlayerStartBuffering 播放端缓冲开始
AlivcVideoChatPlayerEndBuffering 播放端缓冲结束
AlivcVideoChatPlayerFirstFrameRender 播放端首帧显示
AlivcVideoChatPlayerReadPacketTimeout 播放端下载数据超时
AlivcVideoChatPlayerNoDisplayViewer 播放端无显示窗口
AlivcVideoChatPlayerInvalidCodec 播放端音视频格式无效


接口的具体描述如下:

startToPlay

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

功能:开始观看直播。调用该函数将启动直播播放器,并播放获取到的直播流。

参数:

url:直播地址。

view:直播播放器的渲染窗口。

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

备注:无。

stopPlaying

  1. -(int) stopPlaying;

功能:结束观看直播。调用该函数将关闭直播播放器,并销毁所有资源。

参数:无。

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

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

onlineChat

  1. -(int) onlineChat:(NSString*)publisherUrl width:(int)width height:(int)height
  2. preview:(UIView*)preview publisherParam:(NSDictionary*)publisherParam
  3. playerUrl:(NSURL*)playerUrl;

功能:开始连麦。调用该函数将开启音视频的采集设备、启动预览功能、启动音视频编码功能并将压缩后的音视频流上传。同时将播放地址切换到具备短延时功能的新地址。

参数:

publisherUrl:连麦时推流的地址。

playerUrl:连麦时切换到的短延时播放地址。

width,height:编码视频的宽和高。

preview:连麦时推流的预览窗口。

publisherParam:连麦时推流的参数。使用NSDictionary的方式,以便于后续的扩展。目前可以设置的参数如下:(与类AlivcVideoChatHost中接口函数prepareToPublish的参数publisherParam相同)

  • ALIVC PUBLISHER PARAM_ UPLOADTIMEOUT 推流上传超时时间,单位ms,默认15000
  • 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表示失败。

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

onlineChats

  1. -(int) onlineChats:(NSString*)publisherUrl width:(int)width height:(int)height preview:(UIView*)preview publisherParam:(NSDictionary*)publisherParam hostPlayUrl:(NSURL*)hostPlayUrl playerUrls:(NSArray*)playerUrls playerViews:(NSArray*)playerViews;

功能:开始连麦。调用该函数将开启音视频的采集设备、启动预览功能、启动音视频编码功能并将压缩后的音视频流上传。同时将主播和参与连麦的观众的播放地址切换到具备短延时功能的新地址。

参数:

publisherUrl:连麦时推流的地址。

width,height:编码视频的宽和高。

preview:连麦时推流的预览窗口。

publisherParam:连麦时推流的参数。使用Map的方式,以便于后续的扩展。目前可以设置的参数如下:(与类 AlivcVideoChatHost中接口函数prepareToPublish的参数publisherParam相同)

  • ALIVC_PUBLISHER_PARAM_UPLOADTIMEOUT 推流上传超时时间,单位ms,默认15000
  • 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,暂不可调。

hostPlayUrl: 主播流的播放地址。

parterPlayUrls:参与连麦观众的直播流的播放地址。若当前观众是第一个与主播连麦的观众,则参数输入为空。

playerViews:参与连麦观众的surfaceView。若当前观众是第一个与主播连麦的观众,则参数输入为空。

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

备注:本接口可以用于一对一连麦,也可以用于多人连麦。一对一连麦场景下,最后两个参数parterPlayUrlsplayerViews 为空。

addChats

  1. -(int) addChats:(NSArray*)playerUrls playerViews:(NSArray*)playerViews;

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

参数:

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

playerViews:所有新增连麦者的播放窗口。

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

备注:必须调用函数onlineChats后才能调用该函数。playerUrls的个数和playerViews的个数必须相同。

removeChats

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

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

参数:

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

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

备注:必须调用函数onlineChats后才能调用该函数。允许让当前观众退出连麦,此时,调用removeChats与offlineChat功能相同。

reconnect

  1. -(int) reconnect:(NSURL*)playerUrl;

功能:在纯播放或连麦时,某个视频的播放超时,可以调用reconnect进行重新打开。

参数:

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

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

备注:多人连麦使用,指定重连某个播放地址。

offlineChat

  1. -(int) offlineChat;

功能:结束连麦。调用该函数将结束观众的推流,销毁推流的所有资源,并将播放地址切换到连麦之前的地址。

参数:无。

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

备注:无。

setPlayerParam

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

功能:设置播放器相关的配置参数。

参数:

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

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

备注:与类AlivcVideoChatHost中接口函数setPlayerParam功能与参数设置相同。

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;

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

参数:无

返回值:推流性能参数。具体如下:(与类AlivcVideoChatHost中相同)

  • 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;

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

参数:无

返回值:播放性能参数。具体如下:(与类AlivcVideoChatHost中相同)

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

publisherMuteMode

  1. BOOL publisherMuteMode;

功能:设置推流端的静音模式,仅在连麦过程中使用。

参数:无。

备注:无

getSDKVersion

  1. - (NSString *) getSDKVersion;

功能:获取版本信息。

参数:无

返回值:版本号。

本文导读目录