ZegoLiveRoomApi(Player) Category Reference

Declared in ZegoLiveRoomApi-Player.h

– setPlayerDelegate:

设置 Player 代理对象

- (bool)setPlayerDelegate:(id<ZegoLivePlayerDelegate>)playerDelegate

Parameters

playerDelegate

遵循 ZegoLivePlayerDelegate 协议的代理对象

Return Value

true 成功,false 失败

Discussion

使用 Player 功能,初始化相关视图控制器时需要设置代理对象。未设置代理对象,或对象设置错误,可能导致无法正常收到相关回调

Declared In

ZegoLiveRoomApi-Player.h

– startPlayingStream:inView:

播放直播流

- (bool)startPlayingStream:(NSString *)streamID inView:(ZEGOView *)view

Parameters

streamID

流 ID,该参数仅能传入流 ID,不可在流 ID 后添加播放参数。如果想指定播放参数,请使用 [ZegoLiveRoomApi (Player) startPlayingStream:inView:params:] 播放流

view

用来渲染播放视频的视图

Return Value

true 成功,false 失败

Discussion

播放直播流调用此 API。播放成功后,等待 [ZegoLivePlayerDelegate -onPlayStateUpdate:streamID:] 回调

Declared In

ZegoLiveRoomApi-Player.h

– startPlayingStream:inView:params:

指定播放参数,播放直播流

- (bool)startPlayingStream:(NSString *)streamID inView:(ZEGOView *)view params:(NSString *)params

Parameters

streamID

流 ID,该参数仅能传入流 ID,不可在流 ID 后添加播放参数。

view

用来渲染播放视频的视图

params

播放参数

Return Value

true 成功,false 失败

Discussion

播放直播流调用此 API。播放成功后,等待 [ZegoLivePlayerDelegate -onPlayStateUpdate:streamID:] 回调

Declared In

ZegoLiveRoomApi-Player.h

– startPlayingStream:inView:extraInfo:

指定播放参数,播放直播流

- (bool)startPlayingStream:(NSString *)streamID inView:(ZEGOView *)view extraInfo:(ZegoAPIStreamExtraPlayInfo *)info

Parameters

streamID

流 ID,该参数仅能传入流 ID,不可在流 ID 后添加播放参数

view

用来渲染播放视频的视图

info

多媒体流附加信息

Return Value

成功,false 失败

Discussion

播放直播流调用此 API。播放成功后,等待 [ZegoLivePlayerDelegate -onPlayStateUpdate:streamID:] 回调

Declared In

ZegoLiveRoomApi-Player.h

– updatePlayView:ofStream:

更新播放视图

- (bool)updatePlayView:(ZEGOView *)view ofStream:(NSString *)streamID

Parameters

view

播放视图

streamID

流 ID

Return Value

true 成功,false 失败

Discussion

调用 [self -startPlayingStream:inView:] 或 [self -startPlayingStream:inView:params:] 播放流成功以后,如果要切换流播放 View 或者停止显示流画面,调用该 API 变更

Declared In

ZegoLiveRoomApi-Player.h

– stopPlayingStream:

停止播放流

- (bool)stopPlayingStream:(NSString *)streamID

Parameters

streamID

流 ID

Return Value

true 成功,false 失败

Discussion

主播停止流推后,会通过 [ZegoRoomDelegate -onStreamUpdated:streams:roomID:] 通知房间内用户流删除,用户需要调用此 API 停止播放流。停止播放流后,注意移除相关的UI控件

Declared In

ZegoLiveRoomApi-Player.h

– setPlayStreamFocus:

设置拉流优先级的权重,被置为 focus 的流,优先保证其质量。

- (bool)setPlayStreamFocus:(NSString *)streamID

Parameters

streamID

流 ID,当为空时,恢复所有流的权重

Return Value

true: 设置成功, false 设置失败 @attention 默认所有流的权重相同。 @attention 在本地网络不好的时候,保证focus流的同时,可能造成其他的卡顿更多。

Declared In

ZegoLiveRoomApi-Player.h

– requestJoinLive:

请求连麦

- (bool)requestJoinLive:(ZegoResponseBlock)blk

Parameters

blk

回调 block

Return Value

true 成功,false 失败

Discussion

观众请求连麦后,主播会收到 [ZegoLivePublisherDelegate -onJoinLiveRequest:fromUserID:fromUserName:roomID:] 回调。连麦成功后,结果通过 blk 回调

Declared In

ZegoLiveRoomApi-Player.h

– respondInviteJoinLiveReq:result:

回应主播端的邀请连麦请求

- (bool)respondInviteJoinLiveReq:(int)seq result:(int)rspResult

Parameters

seq

连麦请求序列号,标识当次连麦请求

rspResult

回应,0 为同意

Return Value

true 成功,false 失败

Discussion

一般在 [ZegoLivePlayerDelegate -onInviteJoinLiveRequest:fromUserID:fromUserName:roomID:] 中调用本 API 回应邀请连麦请求

Declared In

ZegoLiveRoomApi-Player.h

+ requireHardwareDecoder:

开关硬件解码

+ (bool)requireHardwareDecoder:(bool)bRequire

Parameters

bRequire

true 打开,false 关闭。默认 false

Return Value

true 成功,false 失败

Discussion

如果要打开,需要在拉流前设置。打开硬编硬解开关需后台可控,避免碰到版本升级或者硬件升级时出现硬编硬解失败的问题

Declared In

ZegoLiveRoomApi-Player.h

– enableSpeaker:

(声音输出)静音开关

- (bool)enableSpeaker:(bool)bEnable

Parameters

bEnable

true 不静音,false 静音。默认 true

Return Value

true 成功,false 失败

Discussion

设置为关闭后,内置扬声器和耳机均无声音输出

Declared In

ZegoLiveRoomApi-Player.h

– setBuiltInSpeakerOn:

手机内置扬声器开关

- (bool)setBuiltInSpeakerOn:(bool)bOn

Parameters

bOn

true 打开,false 关闭。默认 true

Return Value

true 成功,false 失败

Discussion

设置为关闭后,扬声器无声音,耳机仍有声音输出

在推流之前设置, 且 setAudioDeviceMode 设置为 ZEGOAPI_AUDIO_DEVICE_MODE_COMMUNICATION 或 ZEGOAPI_AUDIO_DEVICE_MODE_COMMUNICATION2 或 ZEGOAPI_AUDIO_DEVICE_MODE_COMMUNICATION3 时有效

Declared In

ZegoLiveRoomApi-Player.h

– setPlayVolume:

统一设置所有拉流的播放音量

- (bool)setPlayVolume:(int)volume

Parameters

volume

音量取值范围为(0, 100),数值越大,音量越大。默认 100

Return Value

true 成功, false 失败

Discussion

直播时通过此 API 软件调整音量

Declared In

ZegoLiveRoomApi-Player.h

– setPlayVolume:ofStream:

设置指定拉流的播放音量

- (bool)setPlayVolume:(int)volume ofStream:(NSString *)streamID

Parameters

volume

音量取值范围为(0, 100),数值越大,音量越大。默认 100

streamID

流ID. ID为空时, 统一设置所有拉流的播放音量

Return Value

true 成功, false 失败

Discussion

直播时通过此 API 软件调整音量

Declared In

ZegoLiveRoomApi-Player.h

– getSoundLevelOfStream:

获取当前播放视频的音量

- (float)getSoundLevelOfStream:(NSString *)streamID

Parameters

streamID

播放流 ID

Return Value

视频的音量值

Discussion

直播时通过此 API 获取当前音量。音量变更也会受硬件音量键的影响。

Declared In

ZegoLiveRoomApi-Player.h

– setViewMode:ofStream:

设置观看直播的View的模式

- (bool)setViewMode:(ZegoVideoViewMode)mode ofStream:(NSString *)streamID

Parameters

mode

模式,参考 ZegoVideoViewMode 定义。默认 ZegoVideoViewModeScaleAspectFill

streamID

播放流 ID

Return Value

true 成功,false 失败

Discussion

Note: 必须在拉流后调用才有效

一般在流播放、流新增、全屏切换等其他流尺寸可能变化的场合时调用

Declared In

ZegoLiveRoomApi-Player.h

– setViewRotation:ofStream:

设置播放渲染朝向

- (bool)setViewRotation:(int)rotate ofStream:(NSString *)streamID

Parameters

rotate

逆时针旋转角度(0/90/180/270)。默认 0

streamID

播放流 ID

Return Value

true 成功,false 失败

Discussion

一般用于全屏切换、旋转设备时调用,调整播放方向

Declared In

ZegoLiveRoomApi-Player.h

– setViewBackgroundColor:ofStream:

设置视频控件的背景颜色

- (bool)setViewBackgroundColor:(int)color ofStream:(NSString *)streamID

Parameters

color

颜色,取值为0x00RRGGBB

streamID

播放流 ID

Return Value

true 成功,false 失败

Declared In

ZegoLiveRoomApi-Player.h

– takeSnapshotOfStream:withCompletionBlock:

对观看直播视图进行截图

- (bool)takeSnapshotOfStream:(NSString *)streamID withCompletionBlock:(ZegoSnapshotCompletionBlock)blk

Parameters

streamID

流 ID

blk

成功的截图通过 blk 返回

Return Value

true 成功,false 失败

Discussion

直播时调用此 API 可获取当前画面截图

Declared In

ZegoLiveRoomApi-Player.h

– activateAudioPlayStream:active:

拉流是否接收音频数据

- (int)activateAudioPlayStream:(NSString *)streamID active:(bool)active

Parameters

streamID

播放流 ID

active

true 接收,false 不接收

Return Value

0 成功,否则失败

Discussion

仅拉 UDP 流有效,必须在拉流后调用才有效

Declared In

ZegoLiveRoomApi-Player.h

– activateVideoPlayStream:active:

拉流是否接收视频数据

- (int)activateVideoPlayStream:(NSString *)streamID active:(bool)active

Parameters

streamID

播放流 ID

active

true 接收,false 不接收

Return Value

0 成功,否则失败

Discussion

仅拉 UDP 流有效,必须在拉流后调用才有效

Declared In

ZegoLiveRoomApi-Player.h

– activateVideoPlayStream:active:videoLayer:

拉流是否接收视频数据

- (int)activateVideoPlayStream:(NSString *)streamID active:(bool)active videoLayer:(VideoStreamLayer)videoLayer

Parameters

streamID

播放流 ID

active

true 接收,false 不接收

videoLayer

视频分层类型

Return Value

0 成功,否则失败

Discussion

仅拉 UDP 流有效,必须在拉流后调用才有效

Declared In

ZegoLiveRoomApi-Player.h

+ setPlayQualityMonitorCycle:

设置拉流质量监控周期

+ (void)setPlayQualityMonitorCycle:(unsigned int)timeInMS

Parameters

timeInMS

时间周期,单位为毫秒,取值范围为(500, 60000)。默认为 3000

Discussion

该设置会影响 [ZegoLivePlayerDelegate -onPlayQualityUpdate:stream:videoFPS:videoBitrate:] 的回调频率

Declared In

ZegoLiveRoomApi-Player.h

– enableSelectedAudioRecord:sampleRate:

音频录制开关

- (bool)enableSelectedAudioRecord:(unsigned int)mask sampleRate:(int)sampleRate

Discussion

Warning: Deprecated,请使用 enableSelectedAudioRecord:

在启动推流或者启动本地录制(MediaRecorder)的时候,才能开启音频录制

Declared In

ZegoLiveRoomApi-Player.h

– enableSelectedAudioRecord:

开/关音频录制功能

- (bool)enableSelectedAudioRecord:(ZegoAPIAudioRecordConfig)config

Parameters

config

配置信息, 详细请参考 struct ZegoAPIAudioRecordConfig

Return Value

true 调用成功,false 调用失败

Discussion

  • 注意:
  • 1.必须在初始化 SDK 后调用。
  • 2.开启音频录制后,App 需要设置音频录制代理(setAudioRecordDelegate:),才能通过 -onAudioRecord:sampleRate:numOfChannels:bitDepth:type: 获取 SDK 抛出的音频数据。
  • 3.在启动推流或者启动本地录制(MediaRecorder)之后,才能开启音频录制。

Declared In

ZegoLiveRoomApi-Player.h

– setAudioRecordDelegate:

设置音频录制代理对象

- (void)setAudioRecordDelegate:(id<ZegoLiveApiAudioRecordDelegate>)audioRecordDelegate

Parameters

audioRecordDelegate

音频录制回调

Discussion

  • 开启音频录制功能,需要设置代理对象。未设置代理对象,或对象设置错误,可能导致 App 无法正常收到 -onAudioRecord:sampleRate:numOfChannels:bitDepth:type: 回调。

Declared In

ZegoLiveRoomApi-Player.h

+ getMaxPlayChannelCount

获取 SDK 支持的最大同时播放流数

+ (int)getMaxPlayChannelCount

Return Value

最大支持播放流数

Declared In

ZegoLiveRoomApi-Player.h

– setMediaSideCallback:

设置回调, 接收媒体次要信息

- (void)setMediaSideCallback:(void ( *) ( const char *pszStreamID , const unsigned char *buf , int dataLen ))onMediaSideCallback

Parameters

onMediaSideCallback

回调函数指针, pszStreamID:流ID,标记当前回调的信息属于哪条流, buf:接收到的信息数据(具体内容参考官网对应文档中的格式说明), dataLen:buf 总长度

Discussion

开始拉流前调用。观众端在此 API 设置的回调中获取主播端发送的次要信息(要求主播端开启发送媒体次要信息开关,并调用 [ZegoLiveRoomApi (Publisher) -sendMediaSideInfo:dataLen:packet:] 发送次要信息)。当不需要接收信息时,需将 onMediaSideCallback 置空,避免内存泄漏

Declared In

ZegoLiveRoomApi-Player.h

+ enableCheckPoc:

帧顺序检测开关

+ (void)enableCheckPoc:(bool)enable

Parameters

enable

true 检测帧顺序,不支持B帧; false 不检测帧顺序,支持B帧,可能出现短暂花屏

Discussion

必须在初始化 SDK 前调用

Declared In

ZegoLiveRoomApi-Player.h