2016-07-11 31 views
1

因此,我尝试使用Google的VR SDK在我的应用中播放视频,但我遇到了一些问题。尽管有文档,但看起来我们不能再设置视频的类型,所以我得到的视频显示如下:enter image description here谷歌VR视图 - 视频的设置类型

我不能像所有我应该能够移动它。此外全屏模式的参数似乎没有工作。有谁知道这可以解决吗?这是我使用的代码:

#import <UIKit/UIKit.h> 
#import "NewViewController.h" 
#import "GVRVideoView.h" 


@interface NewViewController() 
@property (nonatomic) IBOutlet GVRVideoView *viewView; 



@end 

@implementation NewViewController { 
    BOOL _isPaused; 
} 

- (instancetype)init { 
    self = [super initWithNibName:nil bundle:nil]; 
    return self; 
} 


- (void)viewDidLoad { 
    [super viewDidLoad]; 

    _viewView.enableFullscreenButton = YES; 
    _viewView.enableCardboardButton = YES; 

    _isPaused = true; 

    // Load the sample 360 video, which is of type stereo-over-under. 
    NSString *videoPath = [[NSBundle mainBundle] pathForResource:@"congo" ofType:@"mp4"]; 
    [_viewView loadFromUrl:[[NSURL alloc] initFileURLWithPath:videoPath]]; 


} 



#pragma mark - GVRVideoViewDelegate 

- (void)widgetViewDidTap:(GVRWidgetView *)widgetView { 
    if (_isPaused) { 
     [_viewView resume]; 
    } else { 
     [_viewView pause]; 
    } 
    _isPaused = !_isPaused; 
} 

- (void)widgetView:(GVRWidgetView *)widgetView didLoadContent:(id)content { 
    NSLog(@"Finished loading video"); 
} 

- (void)widgetView:(GVRWidgetView *)widgetView 
didFailToLoadContent:(id)content 
    withErrorMessage:(NSString *)errorMessage { 
    NSLog(@"Failed to load video: %@", errorMessage); 
} 

- (void)videoView:(GVRVideoView*)videoView didUpdatePosition:(NSTimeInterval)position { 
    // Loop the video when it reaches the end. 
    if (position == videoView.duration) { 
     [videoView seekTo:0]; 
     [videoView resume]; 
    } 
} 

@end 

回答

0

连我都面临着同样的问题 因此,我改变

options.inputType = Options.TYPE_STEREO_OVER_UNDER; 

Options options = new Options(); 
options.inputType = Options.TYPE_MONO; 

所以视频worki ng现在好了

0

方法loadFromUrl:而不传递默认为kGVRVideoTypeMono一个类型。

的方法签名应该回答你的问题:

/** 
* Load a local or remote video from a url and start playing. 
* 
* The video is assumed to be of type |kGVRVideoTypeMono|. 
*/ 
- (void)loadFromUrl:(NSURL*)videoUrl; 

/** 
* Load a local or remote video from a url and start playing. 
* 
* The video type is set by |videoType|. 
*/ 
- (void)loadFromUrl:(NSURL*)videoUrl ofType:(GVRVideoType)videoType; 
2
GVRVideoView have two type : 
1) kGVRVideoTypeMono 
2) kGVRVideoTypeStereoOverUnder 

/** Enum for video image types. */ 
typedef NS_ENUM(int, GVRVideoType) { 
    // Each video frame is a monocular equirectangular panorama. 
    // Each frame image is expected to cover 360 degrees along its horizontal axis. 
    kGVRVideoTypeMono = 1, 

    // Each video frame contains two vertically-stacked equirectangular panoramas. The top part of 
    // the frame contains pixels for the left eye, while the bottom part of the frame contains 
    // pixels for the right eye. 
    kGVRVideoTypeStereoOverUnder, 
}; 


If below method used : The video is assumed to be of type |kGVRVideoTypeMono|. 
- (void)loadFromUrl:(NSURL*)videoUrl; 

If below method used then -The video type is set by |ofType:kGVRVideoTypeMono /kGVRVideoTypeStereoOverUnder| 

- (void)loadFromUrl:(NSURL*)videoUrl ofType:(GVRVideoType)videoType; 

e.g : [_videoView loadFromUrl:_videoURL ofType:kGVRVideoTypeMono];