日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

通過(guò)SEI消息實(shí)現(xiàn)連麥過(guò)程中的互動(dòng)

更新時(shí)間:

背景

旁路直播會(huì)在轉(zhuǎn)碼后的 H.264/H.265 的 SEI(Supplemental Enhancement Information)中,增加當(dāng)前視頻的編碼信息,用于直播場(chǎng)景中的各類(lèi)互動(dòng)場(chǎng)景,其中包含房間內(nèi)媒體畫(huà)面的布局信息。 麥下觀眾可以通過(guò)該信息獲取到麥上成員在視頻畫(huà)面中的位置信息。

本文通過(guò)麥下觀眾點(diǎn)擊連麥成員進(jìn)行進(jìn)一步互動(dòng)舉例,介紹通過(guò)SEI消息獲取麥上成員的視頻畫(huà)面的位置流程。

如何監(jiān)聽(tīng)SEI回調(diào)

聯(lián)系技術(shù)支持開(kāi)啟開(kāi)關(guān)

該功能默認(rèn)是關(guān)閉的,如果開(kāi)啟,需要把AppId提供給技術(shù)支持進(jìn)行申請(qǐng)開(kāi)通。

播放器設(shè)置回調(diào)

android示例代碼:

PlayerConfig config = mAliPlayer.getConfig();
config.mEnableSEI = true;
mAliPlayer.setConfig(config);
mAliPlayer.setOnSeiDataListener(new IPlayer.OnSeiDataListener() {
 @Override
 public void onSeiData(int type, byte[] bytes) {
 // 此處獲取SEI回調(diào)
 }
});

iOS示例代碼:

AVPConfig *config = [[AVPConfig alloc] init];
config.enableSEI = YES; // 打開(kāi)SEI監(jiān)聽(tīng)
... 
 
_player = [[AliPlayer alloc] init];
[_player setConfig:config];
_player.delegate = self;
... 

// 通過(guò)player的回調(diào)事件進(jìn)行處理SEI數(shù)據(jù)
- (void)onSEIData:(AliPlayer *)player type:(int)type data:(NSData *)data {
 // 接收來(lái)之混流的SEI數(shù)據(jù),type為5
 if (type == 5) {
 NSString *str = [NSString stringWithUTF8String:data.bytes];
	 NSData *strData = [str dataUsingEncoding:NSUTF8StringEncoding];
 NSError *jsonError = nil;
	 NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:strData options:0 error:&jsonError];
 NSLog(@"混流SEI字典數(shù)據(jù):%@", dict);
 }
}

作為麥下觀眾,進(jìn)入直播間后,可以通過(guò)該回調(diào),在type為5時(shí),獲取視頻布局的SEI信息,信息格式如下。

{
 "canvas": {
 "bgnd": 0,
 "h": 1280,
 "w": 720
 },
 "stream": [
 {
 "h": 0.22890624,
 "ms": 0,
 "paneid": 0,
 "type": 0,
 "uid": "Harold3",
 "vad": 16,
 "vol": 39,
 "w": 0.40694445,
 "x": 0.090277776,
 "y": 0.1921875,
 "zorder": 1
 },
 {
 "h": 0.22890624,
 "ms": 1,
 "paneid": 1,
 "type": 0,
 "uid": "Joshua1",
 "vad": 0,
 "vol": 0,
 "w": 0.40694445,
 "x": 0.5013889,
 "y": 0.1921875,
 "zorder": 2
 }
 ],
 "ts": 1676894623891,
 "ver": "1.0.0.20220915"
}

其中,canvas對(duì)應(yīng)推流畫(huà)布的大小,stream對(duì)應(yīng)麥上每個(gè)成員(含主播)的userId以及位置信息。 業(yè)務(wù)方可以根據(jù)該位置信息,做上層的業(yè)務(wù)定制邏輯處理。