2

我正在使用 DJI SDK 创建一个 VR 应用程序。

我有两个 UIView,fpvPreviewView1 和 fpvPreviewView2。

如何创建同一相机的两个实例?它目前仅显示在单个视图中。

这是相关的代码。

DJICamera *camera = [self fetchCamera];
if (camera && camera.delegate == self)
    [camera setDelegate:nil];
[self resetVideoPreview];

- (DJICamera*) fetchCamera {
    if (![DJISDKManager product]) {
        return nil;
    }

    if ([[DJISDKManager product] isKindOfClass:[DJIAircraft class]]) {
        return ((DJIAircraft*)[DJISDKManager product]).camera;
    }else if ([[DJISDKManager product] isKindOfClass:[DJIHandheld class]]){
        return ((DJIHandheld *)[DJISDKManager product]).camera;
    }

    return nil;
}

[[VideoPreviewer instance] setView:self.fpvPreviewView1];
[[VideoPreviewer instance] setView:self.fpvPreviewView2];
[[VideoPreviewer instance] setView:self.fpvPreviewView1];
[[VideoPreviewer instance] setView:self.fpvPreviewView2];

对时间敏感的。请帮忙!

谢谢!

4

1 回答 1

3

您当前正在做的是每次重置视频预览器单例的视图。您要做的是创建多个 VideoPreviewer 实例并保留参考以正确管理资源。VideoPreviewer 很重。

试试这个:

self.firstVP = [[VideoPreviewer alloc] init]; 
[self.firstVP setView:self.fpvPreviewView1];
self.secondVP = [[VideoPreviewer alloc] init];
[self.secondVP setView:self.fpvPreviewView2];

希望这可以帮助。

于 2017-09-06T02:00:30.860 回答