마분지 모드로 내 앱에서 동영상을 시작할 수있게하고 싶습니다.Google VR 플레이어 SDK (GVRSDK) 기본적으로 광고 게시판 모드로 시작 하시겠습니까?
Gooogle VR 플레이어 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에 의해 같은 과정 볼 수 있지만,이 일 ... 나는 그 줄에 오류가 있어요 doenst 수 있습니다 : 첫 번째 줄 '정적 멤버'로드 '에 대한
cardboardVRview.load(from: URL(string: Media.videoURL))
cardboardVRview.enableCardboardButton = true
cardboardVRview.enableFullscreenButton = true
을 유형의 인스턴스를 사용할 수 없습니다 GVRCardboardView
이고 'GVRCardboardView'유형의 값에는 다른 두 행에 'enableFullscreenButton'및 'enableCardboardBUtton'멤버가 없습니다. .
아무도 내가이 일을 어떻게 할 수 있는지 안다 ??
환상적입니다! 고마워요!