我已经在我的iOS应用程序中集成了SkyWay SDK (https://webrtc.ecl.ntt.com/en/),以实现视频会议。我的问题是 - 我无法调整远程视频流帧以实现全屏流媒体?当我调整rcRemote的CGRect时,视频覆盖在此视图上的叠加层不会调整大小,当我更改maxWidth和maxHeight约束时,框架不会改变。是否有任何方法根据您的要求自定义远程视频流帧?
[SKWNavigator initialize:_peer];
SKWMediaConstraints* constraints = [[SKWMediaConstraints alloc] init];
constraints.maxWidth = 960;
constraints.maxHeight = 540;
constraints.cameraPosition = SKW_CAMERA_POSITION_FRONT;
_msLocal = [SKWNavigator getUserMedia:constraints];
//////////////////// END: Get Local Stream /////////////////////////
// Initialize views
if ((nil != self.navigationItem) && (nil == self.navigationItem.title))
{
NSString* strTitle = @"Video Conference";
[self.navigationItem setTitle:strTitle];
}
CGRect rcScreen = self.view.bounds;
if (NSFoundationVersionNumber_iOS_6_1 < NSFoundationVersionNumber)
{
CGFloat fValue = [UIApplication sharedApplication].statusBarFrame.size.height;
rcScreen.origin.y = fValue;
if (nil != self.navigationController)
{
if (NO == self.navigationController.navigationBarHidden)
{
fValue = self.navigationController.navigationBar.frame.size.height;
rcScreen.origin.y += fValue;
}
}
}
// Initialize Remote video view
CGRect rcRemote = CGRectZero;
if (UIUserInterfaceIdiomPad == [UIDevice currentDevice].userInterfaceIdiom)
{
// iPad
rcRemote.size.width = 480.0f;
rcRemote.size.height = 480.0f;
}
else
{
// iPhone / iPod touch
rcRemote.size.width = rcScreen.size.width;
rcRemote.size.height = rcRemote.size.width;
}
rcRemote.origin.x = (rcScreen.size.width - rcRemote.size.width) / 2.0f;
rcRemote.origin.y = (rcScreen.size.height - rcRemote.size.height) / 2.0f;
rcRemote.origin.y -= 8.0f;
// Initialize Local video view
CGRect rcLocal = CGRectZero;
if (UIUserInterfaceIdiomPad == [UIDevice currentDevice].userInterfaceIdiom)
{
rcLocal.size.width = rcScreen.size.width / 5.0f;
rcLocal.size.height = rcScreen.size.height / 5.0f;
}
else
{
rcLocal.size.width = rcScreen.size.height / 5.0f;
rcLocal.size.height = rcLocal.size.width;
}
rcLocal.origin.x = rcScreen.size.width - rcLocal.size.width - 8.0f;
rcLocal.origin.y = rcScreen.size.height - rcLocal.size.height - 8.0f;
rcLocal.origin.y -= self.navigationController.toolbar.frame.size.height;
// New frames for local and remote video views
CGRect rcRemoteNew;
rcRemoteNew.origin.x = 10.0;
rcRemoteNew.origin.y = 20.0;
rcRemoteNew.size.width = SCREEN_WIDTH - 10;
rcRemoteNew.size.height = SCREEN_HEIGHT/2 + 100;
CGRect rcLocalNew;
rcLocalNew.origin.x = SCREEN_WIDTH/2 - 50;
rcLocalNew.origin.y = SCREEN_HEIGHT/2;
rcLocalNew.size.width = 100;
rcLocalNew.size.height = 100;
//////////// START: Add Remote & Local SKWVideo to View ///////////
SKWVideo* vwRemote = [[SKWVideo alloc] initWithFrame:rcRemote];
[vwRemote setTag:TAG_REMOTE_VIDEO];
[vwRemote setUserInteractionEnabled:NO];
[vwRemote setHidden:YES];
[self.view addSubview:vwRemote];
SKWVideo* vwLocal = [[SKWVideo alloc] initWithFrame:rcLocal];
[vwLocal setTag:TAG_LOCAL_VIDEO];
[self.view addSubview:vwLocal];
// Add local stream to local video view
[vwLocal addSrc:_msLocal track:0];
//////////// END: Add Remote & Local SKWVideo to View /////////////