ZegoLiveRoom
Classes | Functions
ZEGO::MEDIASIDEINFO Namespace Reference

Classes

class  IZegoAudioSideCallback
 
class  IZegoMediaSideCallback
 
struct  MediaSideInfo
 

Functions

ZEGOAVKIT_API void SetMediaSideFlags (bool bStart, bool bOnlyAudioPublish, int mediaInfoType=AV::SideInfoZegoDefined, int seiSendType=AV::SeiSendSingleFrame, AV::PublishChannelIndex idx=AV::PUBLISH_CHN_MAIN)
 
ZEGOAVKIT_API void SendMediaSideInfo (const unsigned char *inData, int dataLen, bool bPacket, AV::PublishChannelIndex idx=AV::PUBLISH_CHN_MAIN)
 
ZEGOAVKIT_API void SendMediaSideInfoSyncWithCustomVideo (const unsigned char *inData, int dataLen, unsigned long long timestamp_ns, AV::PublishChannelIndex idx=AV::PUBLISH_CHN_MAIN)
 
ZEGOAVKIT_API void SendAudioSideInfo (const unsigned char *inData, int dataLen, double timeStampMs, AV::PublishChannelIndex idx=AV::PUBLISH_CHN_MAIN)
 
ZEGOAVKIT_API void SetAudioSideCallback (IZegoAudioSideCallback *pCB)
 
ZEGOAVKIT_API void SetMediaSideCallback (IZegoMediaSideCallback *pCB)
 

Function Documentation

◆ SendAudioSideInfo()

ZEGOAVKIT_API void ZEGO::MEDIASIDEINFO::SendAudioSideInfo ( const unsigned char *  inData,
int  dataLen,
double  timeStampMs,
AV::PublishChannelIndex  idx = AV::PUBLISH_CHN_MAIN 
)

发送与音频帧同步的次要信息

Attention
1.需要在推流后调用,在推流前调用的数据会被丢弃。 2.仅支持音频驱动次要信息发送, 当调用了接口 [EnableDTX] 开启离散音频包发送功能后,音频次要信息可能会丢失。 3.受网络等因素的影响拉流端接收到的数据可能会有缺失,但是保证顺序。 4.该函数仅支持向 RTC 服务器推流时调用有效并且从 RTC 服务器 转推流到 CDN 时也是无效的。 5.发送的数据长度不能大于1024,否则 SDK 会发送失败。
Parameters
inData需要传输的音频次要信息数据,外部输入。
dataLen数据长度。
idx推流通道 index,请参考 AV::PublishChannelIndex
timeStampMs单位为毫秒,来源于外部音频采集前处理。如果时间戳填0,会跟随当前准备发送的帧发送。

◆ SendMediaSideInfo()

ZEGOAVKIT_API void ZEGO::MEDIASIDEINFO::SendMediaSideInfo ( const unsigned char *  inData,
int  dataLen,
bool  bPacket,
AV::PublishChannelIndex  idx = AV::PUBLISH_CHN_MAIN 
)

发送媒体次要信息

Attention
1.必须在推流成功之后调用。 2.SetMediaSideFlags 接口设置为音视频直播时,关闭摄像头将导致无法发送媒体次要信息。 3.不需要发送媒体次要信息时,可调用 SetMediaSideFlags 来关闭媒体次要信息传输,第一个参数填 false 就代表关闭,关闭后即使调用 SendMediaSideInfo 也不能再发送媒体次要信息。 4.SendMediaSideInfo 的调用频率不能超过帧率,假设推流采用默认帧率15 fps,即调用频率不能超过 1000/15=66.7 ms/次。 5.如果以视频驱动媒体次要信息发送,则调用的频率不能超过视频的编码帧率 * 2。 6.如果以音频驱动媒体次要信息发送,则调用频率不能超过音频的编码帧率 * 2。
Parameters
inData需要传输的音视频次要信息数据,外部输入。
bPacket是否采用外部打包好的包头,填写 false。
idx推流通道 index,请参考 AV::PublishChannelIndex
See also
相关接口请查看 SetMediaSideFlags

◆ SendMediaSideInfoSyncWithCustomVideo()

ZEGOAVKIT_API void ZEGO::MEDIASIDEINFO::SendMediaSideInfoSyncWithCustomVideo ( const unsigned char *  inData,
int  dataLen,
unsigned long long  timestamp_ns,
AV::PublishChannelIndex  idx = AV::PUBLISH_CHN_MAIN 
)

使用自定义视频采集时,发送与视频帧同步的媒体次要信息

Attention
1.要保证与视频帧数据同步,必须在发送视频帧数据之前调用,且保证与发送视频帧接口在同一线程调用。 2.发送的 SEI 跟随视频帧,由于网络问题有可能丢帧,这个时候 SEI 会跟随下一帧视频数据,因此为了保持 SEI 与视频帧同步,应该尽量避免连续发送 SEI。 3.停止自定义采集将导致无法发送媒体次要信息。 4.不需要发送媒体次要信息时,可调用 SetMediaSideFlags 来关闭媒体次要信息传输,第一个参数填 false 就代表关闭,关闭后即使调用该接口也不能再发送媒体次要信息。 5.仅支持视频驱动媒体次要信息发送。
Parameters
inData需要传输的音视频次要信息数据,外部输入。
dataLen数据长度。
idx推流通道 index,请参考 AV::PublishChannelIndex
timestamp_nsUNIX 时间戳,单位为纳秒,仅在 Android 平台使用 SurfaceTexture 时,需要传时间戳参数 timestamp_ns,其他情况该参数无效。
See also
相关接口请查看 SetMediaSideFlags

◆ SetAudioSideCallback()

ZEGOAVKIT_API void ZEGO::MEDIASIDEINFO::SetAudioSideCallback ( IZegoAudioSideCallback pCB)

设置音频次要信息的回调监听,以接收音频次要信息。

Attention

1.在调用初始化 SDK 接口之后、拉流接口之前设置。 2.观众端若想在此 API 设置的回调中获取主播端发送的音频次要信息,需要主播端已开启发送音频次要信息开关,并调用 SendAudioSideInfo 发送音频次要信息。 3.音频次要信息受音频驱动,拉流时使用 ActivateAudioPlayStream 接口设置了只拉视频时,将无法接收到音频次要信息。 4.受网络等因素的影响接收到的数据可能会有缺失,但是保证顺序 5.当不需要接收数据时,调用 IZegoAudioSideCallBack(null) 去除回调监听,避免内存泄漏。
Parameters
pCB实现了 IZegoAudioSideCallBack 回调的方法,用于拉流时接收音频次要信息。

◆ SetMediaSideCallback()

ZEGOAVKIT_API void ZEGO::MEDIASIDEINFO::SetMediaSideCallback ( IZegoMediaSideCallback pCB)

设置媒体次要信息的回调监听,以接收媒体次要信息。

Attention

1.在调用初始化 SDK 接口之后、拉流接口之前设置。 2.观众端若想在此 API 设置的回调中获取主播端发送的媒体次要信息,需要主播端已开启发送媒体次要信息开关,并调用 SendMediaSideInfo 发送媒体次要信息。 3.主播端采用音视频直播驱动媒体次要信息传输时,拉流时使用 ActivateVideoPlayStream 接口设置了只拉音频时,将无法接收到媒体次要信息。 4.当不需要接收数据时,调用 SetMediaSideCallback(null) 去除回调监听,避免内存泄漏。
Parameters
pCB实现了 IZegoMediaSideCallback 回调的方法,用于拉流时接收媒体次要信息。

◆ SetMediaSideFlags()

ZEGOAVKIT_API void ZEGO::MEDIASIDEINFO::SetMediaSideFlags ( bool  bStart,
bool  bOnlyAudioPublish,
int  mediaInfoType = AV::SideInfoZegoDefined,
int  seiSendType = AV::SeiSendSingleFrame,
AV::PublishChannelIndex  idx = AV::PUBLISH_CHN_MAIN 
)

发送媒体次要信息开关,支持发送 SEI 的设置。

Attention
1.必须在调用初始化 SDK 接口之后、推流接口之前设置。 2.如果只有音频直播,必须将 onlyAudioPublish 置为 true,此时将会由音频来驱动次要信息的传输,同时忽略视频流传输。
Parameters
bStart开启/关闭媒体次要信息传输,true 表示开启媒体次要信息传输,false 表示关闭媒体次要信息传输。start 为 true 时,onlyAudioPublish 参数开关才有效。
bOnlyAudioPublish是否为纯音频直播,true 表示纯音频直播,不传输视频数据;false 表示音视频直播,传输音频和视频数据;默认为 false。
mediaInfoType媒体次要信息类型,请参考 MediaInfoType 定义,建议使用 SeiZegoDefined 类型。
seiSendTypeSEI 发送类型,请参考 SeiSendType 定义,此参数只对发送 SEI 时有效,当 mediaInfoType 参数为 SideInfoZegoDefined 时此参数无效;当发送 SEI 时建议使用 SeiSendInVideoFrame 类型。
idx推流通道 index,请参考 AV::PublishChannelIndex