1

我正在尝试使用 Panframe 框架(Panframe 网站)创建一个 360 度视频应用程序。该框架是在 Objective-C 中创建的,因此我还使用 GitHub 上的 PanframeSDKWrapper 来“快速化” Panframe 框架(GitHub 上的 PanframeSDKWrapper )。

我有一个带有以下代码的 Viewcontroller:

import UIKit

class HomeViewController: UIViewController, PanframeAssetObserver {

    var pfView: PanframeView!
    var pfAsset: PanframeAsset!

    @IBOutlet weak var myWebView: UIWebView!
    @IBOutlet weak var PlayButton: UIButton!
    @IBOutlet weak var StopButton: UIButton!

    override func viewDidLoad() {
        super.viewDidLoad()
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

    func createView() -> Void {
        pfView = PanframeView(frame: view.bounds)
        pfView.autoresizingMask = ([.FlexibleWidth, .FlexibleHeight])
        // set the appropriate navigation mode PFView
        pfView.navigationMode = PanframeNavigationMode.Motion
        // set an optional blackspot image
        // add the view to the current stack of views
        self.view!.addSubview(pfView)
        self.view!.sendSubviewToBack(pfView)
        pfView.setViewMode(PanframeViewMode.Flat, andAspectRatio: 16.0 / 9.0)
        // Set some parameters
        self.resetViewParameters()
        // start rendering the view
        pfView.run()
    }

    func resetViewParameters() -> Void {
        pfView .setFieldOfView(75.0)
        // register the interface orientation with the PFView
        pfView .setInterfaceOrientation(self.interfaceOrientation)
        switch self.interfaceOrientation {
        case .Portrait, .PortraitUpsideDown:
            // Wider FOV which for portrait modes
            pfView .setFieldOfView(90.0)
        default:
            break
        }
    }

    func deleteView() -> Void {
        // Stop rendering the view
        pfView .halt()

        // Remove and destroy view
        pfView .removeFromSuperview()
        pfView = nil
    }

    func createAssetWithUrl(url: NSURL) -> Void {
        pfAsset = PanframeAsset(url: url, observer:self)

    }

    func deleteAsset() -> Void {

    }

    @IBAction func playButtonClick(sender: UIButton) {
        createView()
        createAssetWithUrl(NSURL.fileURLWithPath(NSBundle.mainBundle().pathForResource("PANO1", ofType: "m4v")!))
        pfAsset.play()
    }

    @IBAction func stopButtonClick(sender: UIButton) {
        pfAsset.stop()
    }

    func panframeAsset(asset: PanframeAsset, onPlayerTime time: CMTime) {

    }

    func panframeAsset(asset: PanframeAsset, onStatusMessage message: PanframeAssetMessage) {

    }

}

PAN01.m4v 是由 Panframe 的示例应用程序(在 Objective-C 中)提供的示例视频,并且存在于我的资源中。

当我构建和运行这个应用程序时,我没有错误,我从视频中听到声音,但没有图片。任何想法为什么我没有视频...?

在 Marius 的评论之后进行编辑:我正在真实设备(iPhone 5、iOS 9.2.1)上对此进行测试。

4

1 回答 1

0

它与应用程序传输安全性有关。如果您查看调试控制台,您应该会看到框架中的一些日志,它试图联系https://secure.panframe.com以验证许可证的副本等。

在此处输入图像描述

在您的 info.plist 中,设置 add App Transport Security 设置以暂时允许任意加载。

如果这不起作用,它将与您的桥接头中的导入语句有关。下面应该解决它。

#import "Panframe/PFAsset.h"
#import "Panframe/PFAssetObserver.h"
#import "Panframe/PFView.h"
#import "Panframe/PFObjectFactory.h"
#import "PanframeSDKWrapper.h"
于 2016-04-22T14:32:25.813 回答