Skip to content

Commit a8ad157

Browse files
committed
[iOS,Mac]demo更新请求远端画面使用示例
1 parent e789fe2 commit a8ad157

File tree

2 files changed

+35
-46
lines changed

2 files changed

+35
-46
lines changed

Mac/TRTCDemo/TRTC/TRTCMainWindowController.m

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -606,13 +606,26 @@ - (void)onUserEnter:(NSString *)userId {
606606
self.bigSmallStreamState[userId] = @(TRTCVideoStreamTypeSmall);
607607
[self.trtcEngine setRemoteVideoStreamType:userId type:TRTCVideoStreamTypeSmall];
608608
}
609-
[self.trtcEngine startRemoteView:userId view:videoView];
610609

611610
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
612611
[self updateLayoutVideoFrame];
613612
});
614613
}
615614

615+
- (void)onUserVideoAvailable:(NSString *)userId available:(BOOL)available
616+
{
617+
//远程画面
618+
if (userId != nil) {
619+
TXRenderView* videoView = [self renderViewForUser:userId];
620+
if (available) {
621+
[self.trtcEngine startRemoteView:userId view:videoView];
622+
}
623+
else {
624+
[self.trtcEngine stopRemoteView:userId];
625+
}
626+
}
627+
}
628+
616629
- (void)onDevice:(NSString *)deviceId type:(TRTCMediaDeviceType)deviceType stateChanged:(NSInteger)state
617630
{
618631
NSLog(@"onDevice:%@ type:%ld state:%ld", deviceId, (long)deviceType, (long)state);

iOS/TRTCDemo/TRTC/TRTCMainViewController.m

Lines changed: 21 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -776,17 +776,6 @@ - (void)onUserEnter:(NSString *)userId {
776776
[self.view addSubview:remoteView];
777777
[_remoteViewDic setObject:remoteView forKey:userId];
778778

779-
// 启动远程画面的解码和显示逻辑,FillMode 可以设置是否显示黑边
780-
if (!self.enableCustomVideoCapture) {
781-
[_trtc startRemoteView:userId view:remoteView];
782-
[_trtc setRemoteViewFillMode:userId mode:TRTCVideoFillMode_Fit];
783-
}
784-
else {
785-
//测试自定义渲染
786-
[_trtc setRemoteVideoRenderDelegate:userId delegate:_customVideoRenderTester pixelFormat:TRTCVideoPixelFormat_NV12 bufferType:TRTCVideoBufferType_PixelBuffer];
787-
[_customVideoRenderTester addUser:userId videoView:remoteView];
788-
[_trtc startRemoteView:userId view:nil];
789-
}
790779
// 将新进来的成员设置成大画面
791780
_mainViewUserId = userId;
792781

@@ -831,40 +820,27 @@ - (void)onUserAudioAvailable:(NSString *)userId available:(BOOL)available
831820

832821
- (void)onUserVideoAvailable:(NSString *)userId available:(BOOL)available
833822
{
834-
// if (available) {
835-
// TRTCVideoView *remoteView = [TRTCVideoView newVideoViewWithType:VideoViewType_Remote userId:userId];
836-
// remoteView.delegate = self;
837-
// [remoteView setBackgroundColor:UIColorFromRGB(0x262626)];
838-
// [self.view addSubview:remoteView];
839-
// [_remoteViewDic setObject:remoteView forKey:userId];
840-
//
841-
// // 启动远程画面的解码和显示逻辑,FillMode 可以设置是否显示黑边
842-
// [_trtc startRemoteView:userId view:remoteView];
843-
// [_trtc setRemoteViewFillMode:userId mode:TRTCVideoFillMode_Fit];
844-
// // 将新进来的成员设置成大画面
845-
// _mainViewUserId = userId;
846-
//
847-
// }
848-
// else {
849-
// UIView *playerView = [_remoteViewDic objectForKey:userId];
850-
// [playerView removeFromSuperview];
851-
// [_remoteViewDic removeObjectForKey:userId];
852-
//
853-
// NSString* subViewId = [NSString stringWithFormat:@"%@-sub", userId];
854-
// UIView *subStreamPlayerView = [_remoteViewDic objectForKey:subViewId];
855-
// [subStreamPlayerView removeFromSuperview];
856-
// [_remoteViewDic removeObjectForKey:subViewId];
857-
//
858-
// // 如果该成员是大画面,则当其离开后,大画面设置为本地推流画面
859-
// if ([userId isEqual:_mainViewUserId] || [subViewId isEqualToString:_mainViewUserId]) {
860-
// _mainViewUserId = _selfUserID;
861-
// }
862-
//
863-
// }
864-
// [self relayout];
865-
TRTCVideoView* videoView = [_remoteViewDic objectForKey:userId];
866-
[videoView showVideoCloseTip:!available];
867-
823+
if (userId != nil) {
824+
TRTCVideoView* remoteView = [_remoteViewDic objectForKey:userId];
825+
if (available) {
826+
// 启动远程画面的解码和显示逻辑,FillMode 可以设置是否显示黑边
827+
if (!self.enableCustomVideoCapture) {
828+
[_trtc startRemoteView:userId view:remoteView];
829+
[_trtc setRemoteViewFillMode:userId mode:TRTCVideoFillMode_Fit];
830+
}
831+
else {
832+
//测试自定义渲染
833+
[_trtc setRemoteVideoRenderDelegate:userId delegate:_customVideoRenderTester pixelFormat:TRTCVideoPixelFormat_NV12 bufferType:TRTCVideoBufferType_PixelBuffer];
834+
[_customVideoRenderTester addUser:userId videoView:remoteView];
835+
[_trtc startRemoteView:userId view:nil];
836+
}
837+
}
838+
else {
839+
[_trtc stopRemoteView:userId];
840+
}
841+
842+
[remoteView showVideoCloseTip:!available];
843+
}
868844

869845
NSLog(@"onUserVideoAvailable:userId:%@ alailable:%u", userId, available);
870846

0 commit comments

Comments
 (0)