Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 谷歌VR播放器SDK(GVRSDK)默认以carboard模式启动?_Ios_Swift_Google Vr - Fatal编程技术网

Ios 谷歌VR播放器SDK(GVRSDK)默认以carboard模式启动?

Ios 谷歌VR播放器SDK(GVRSDK)默认以carboard模式启动?,ios,swift,google-vr,Ios,Swift,Google Vr,我希望能够在纸板模式下启动我的应用程序上的视频 我已经成功安装了Gooogle VR player SDK,我创建了一个按钮以全屏模式启动视频,也成功了 我想要另一个按钮,这次开始在纸板模式的视频,但我不能使它的工作 下面是带有按钮的控制器的代码: // // FeedDetails.swift // MobileAppDemo // // Created by Mikko Hilpinen on 31.10.2016. // Copyright © 2016 Mikkomari

我希望能够在纸板模式下启动我的应用程序上的视频

我已经成功安装了Gooogle VR player SDK,我创建了一个按钮以全屏模式启动视频,也成功了

我想要另一个按钮,这次开始在纸板模式的视频,但我不能使它的工作

下面是带有按钮的控制器的代码:

 //
 //  FeedDetails.swift
 //  MobileAppDemo
 //
//  Created by Mikko Hilpinen on 31.10.2016.
//  Copyright © 2016 Mikkomario. All rights reserved.
//

 import UIKit
 import FirebaseAuth
 import FirebaseDatabase
 import FirebaseStorage
 import SwiftKeychainWrapper
 import SwiftyJSON

 class FeedDetailsController: UIViewController, UIImagePickerControllerDelegate, UINavigationControllerDelegate {

@IBOutlet weak var textView: UITextView!
@IBOutlet weak var titleLabel: UITextView!
@IBOutlet weak var imageView: UIImageView!
@IBOutlet var videoVRView: GVRVideoView!

@IBOutlet var imageVRView: GVRPanoramaView!

@IBOutlet var cardboardVRview: GVRCardboardView!
@IBOutlet var imageLabel: UILabel!
@IBOutlet var videoLabel: UILabel!

enum Media {

    static var photoArray = ["test.jpg"]
    static let videoURL = "https:/myserver.com/videolight.mp4"
}


var currentView: UIView?
var currentDisplayMode = GVRWidgetDisplayMode.embedded
var isPaused = true


     override func viewDidLoad() {
      super.viewDidLoad()


    imageLabel.isHidden = true
    imageVRView.isHidden = true
    videoLabel.isHidden = true
    videoVRView.isHidden = true
    cardboardVRview.isHidden = true

    imageVRView.load(UIImage(named: Media.photoArray.first!),
                     of: GVRPanoramaImageType.mono)
    imageVRView.enableCardboardButton = true
    imageVRView.enableFullscreenButton = true
    //        imageVRView.delegate = self

    videoVRView.load(from: URL(string: Media.videoURL))
    videoVRView.enableCardboardButton = true
    videoVRView.enableFullscreenButton = true


    //        videoVRView.delegate = self

    cardboardVRview.load(from: URL(string: Media.videoURL))
    cardboardVRview.enableCardboardButton = true
    cardboardVRview.enableFullscreenButton = true
    // change to your specification

    textView.isEditable = false
    textView.isSelectable = false
    titleLabel.isEditable = false
    titleLabel.isSelectable = false

    textView.text = posts[selectedIndexPath].caption
    titleLabel.text = posts[selectedIndexPath].title

    Storage.getImage(with: posts[selectedIndexPath].imageUrl){
        postPic in
        self.imageView.image = postPic

    }

}

// TRIGER VIDEO 360 //

@IBAction func videoButton(_ sender: UIButton) {

if let button = self.videoVRView.subviews[1] as? UIButton {
    button.sendActions(for: .touchUpInside)

}

}
  func widgetView(widgetView: GVRWidgetView!, didLoadContent content: AnyObject!) {
    self.videoVRView.isHidden = false;

 }

// END TRIGGER 360 //

// TRIGER CARDBOARD //

@IBAction func cardboardButton(_ sender: UIButton) {

    if let button = self.cardboardVRview.subviews[1] as? UIButton {
        button.sendActions(for: .touchUpInside)
    }

}
func widgetViewcardboard(widgetView: GVRCardboardView!, didLoadContent content: AnyObject!) {
    self.cardboardVRview.isHidden = false
}

// END CARDBOARD //

@IBAction func closeButton(_ sender: UIButton) {
    self.dismiss(animated: true, completion: nil)
}


func refreshVideoPlayStatus() {
    if currentView == videoVRView && currentDisplayMode != GVRWidgetDisplayMode.embedded {
        videoVRView?.resume()
        isPaused = false
    } else {
        videoVRView?.pause()
        isPaused = true
    }
}

func setCurrentViewFromTouch(touchPoint point:CGPoint) {
    if imageVRView!.frame.contains(point) {
        currentView = imageVRView
    }
    if videoVRView!.frame.contains(point) {
        currentView = videoVRView
    }
    }

    }
  extension FeedDetailsController: GVRWidgetViewDelegate {
func widgetView(_ widgetView: GVRWidgetView!, didLoadContent content: Any!) {
    if content is UIImage {
        imageVRView.isHidden = false
        imageLabel.isHidden = false
    } else if content is NSURL {
        videoVRView.isHidden = false
        videoLabel.isHidden = false
        refreshVideoPlayStatus()
    }
}

func widgetView(_ widgetView: GVRWidgetView!, didFailToLoadContent content: Any!, withErrorMessage errorMessage: String!)  {
    print(errorMessage)
}

func widgetView(_ widgetView: GVRWidgetView!, didChange displayMode: GVRWidgetDisplayMode) {
    currentView = widgetView
    currentDisplayMode = displayMode
    refreshVideoPlayStatus()
    if currentView == imageVRView && currentDisplayMode != GVRWidgetDisplayMode.embedded {
        view.isHidden = true
    } else {
        view.isHidden = false
    }
}

func widgetViewDidTap(_ widgetView: GVRWidgetView!) {
    guard currentDisplayMode != GVRWidgetDisplayMode.embedded else {return}
    if currentView == imageVRView {
        Media.photoArray.append(Media.photoArray.removeFirst())
        imageVRView?.load(UIImage(named: Media.photoArray.first!), of: GVRPanoramaImageType.mono)
    } else {
        if isPaused {
            videoVRView?.resume()
        } else {
            videoVRView?.pause()
        }
        isPaused = !isPaused
    }
}
 }



 extension FeedDetailsController: GVRVideoViewDelegate {
func videoView(_ videoView: GVRVideoView!, didUpdatePosition position: TimeInterval) {
    OperationQueue.main.addOperation() {
        if position >= videoView.duration() {
            videoView.seek(to: 0)
            videoView.resume()
        }
    }
}
}

 class TouchView: UIView {
override func point(inside point: CGPoint, with event: UIEvent?) -> Bool {
    if let FeedDetailsController = viewController() as? FeedDetailsController , event?.type == UIEventType.touches {
        FeedDetailsController.setCurrentViewFromTouch(touchPoint: point)
    }
    return true
}

func viewController() -> UIViewController? {
    if self.next!.isKind(of: FeedDetailsController.self) {
        return self.next as? UIViewController
    } else {
        return nil
    }
}


  }
我做了与开始以全屏模式播放视频相同的过程,但调用了GVRCardboardView而不是您可以看到的GVRVideoView,但它不起作用。。。我在这些线路上有错误:

      cardboardVRview.load(from: URL(string: Media.videoURL))
    cardboardVRview.enableCardboardButton = true
    cardboardVRview.enableFullscreenButton = true
对于第一行,“静态成员”load不能在GVRCardboardView类型的实例中使用

类型为“GVRCardboardView”的值没有其他两行的成员“enableFullscreenButton”和“enableCardboardBUtton”

有人知道我怎样才能做到这一点吗


太棒了!谢谢你们

如果您希望在默认情况下以硬纸板模式启动。您应该将视图设置为这样。意味着你将进入:

videoVRView.displayMode = GVRWidgetDisplayMode.fullscreenVR