Build Status CocoaPods Compatible Carthage Compatible License

Swifty360Player Swifty360Player

iOS 360度视频播放器,可从 AVPlayer 流式传输视频。

演示

Swifty360Player Demo

要求

Swifty360Player 版本 最低 iOS 目标版本 Swift 版本
0.2.7 11.0 5.x
0.2.2 11.0 4.2
0.2.1 10.0 4.1
0.2 10.0 4.0

CocoaPods

CocoaPods 是 Cocoa 项目的依赖管理器。您可以使用以下命令安装它:

$ gem install cocoapods

要使用 CocoaPods 将 Swifty360Player 集成到您的 Xcode 项目中,请在您的 Podfile 中指定它:

source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '11.0'
use_frameworks!

target '<Your Target Name>' do
    pod 'Swifty360Player', '0.2.7'
end

然后,运行以下命令:

$ pod install

Carthage

Carthage 是一个去中心化的依赖管理器,它构建您的依赖项并为您提供二进制框架。

您可以使用 Homebrew 使用以下命令安装 Carthage:

brew update
brew install carthage

要使用 Carthage 将 Swifty360Player 集成到您的 Xcode 项目中,请在您的 Cartfile 中指定它:

github "abdullahselek/Swifty360Player" ~> 0.2.7

运行 `carthage update` 来构建框架,并将构建的 Swifty360Player.framework 拖到您的 Xcode 项目中。

Swift Package Manager

修改您的 Package.swift 文件以包含以下依赖项:

.package(url: "https://github.com/abdullahselek/Swifty360Player.git", from: "0.2.7")

运行 swift package resolve

XCFramework

XCFrameworks 需要 Xcode 11 或更高版本,并且集成方式与 .framework 格式的集成非常相似。请使用脚本 scripts/build-framework.sh 生成二进制 Swifty360Player.xcframework 存档,您可以将其用作 Xcode 中的依赖项。

Swifty360Player.xcframework 是一个 Release(优化)二进制文件,可提供最佳的 Swift 代码性能。

使用示例

您只需要一个使用有效的视频 URL 创建的 AVPlayer 实例和一个 Swifty360MotionManager 实例。您可以在 UIViewController 实例中使用这些代码片段。

视频网址可以是本地的,也可以是远程的。

let videoURL = URL(fileURLWithPath: Bundle.main.path(forResource: "google-help-vr", ofType: "mp4")!)
let player = AVPlayer(url: videoURL)

let motionManager = Swifty360MotionManager.shared
swifty360ViewController = Swifty360ViewController(withAVPlayer: player, motionManager: motionManager)

addChildViewController(swifty360ViewController)
view.addSubview(swifty360ViewController.view)
swifty360ViewController.didMove(toParentViewController: self)

player.play()

let tapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(reorientVerticalCameraAngle))
view.addGestureRecognizer(tapGestureRecognizer)

点击手势处理程序

@objc func reorientVerticalCameraAngle() {
    swifty360ViewController.reorientVerticalCameraAngleToHorizon(animated: true)
}

使用 Storyboard 和 Swifty360ViewController 作为父类

guard let swifty360ViewController = self.storyboard?.instantiateViewController(withIdentifier: "TestViewController") as? TestViewController else {
    return
}
let videoURL = URL(fileURLWithPath: Bundle.main.path(forResource: "google-help-vr", ofType: "mp4")!)
let player = AVPlayer(url: videoURL)
let motionManager = Swifty360MotionManager.shared
swifty360ViewController.player = player
swifty360ViewController.motionManager = motionManager
self.present(swifty360ViewController, animated: true, completion: nil)
import UIKit
import Swifty360Player

class TestViewController: Swifty360ViewController {

    override func viewDidLoad() {
        super.viewDidLoad()

        player.play()
    }

}

使用代码命令的 Swifty360View 的示例用法

let videoURL = URL(fileURLWithPath: Bundle.main.path(forResource: "google-help-vr", ofType: "mp4")!)
let player = AVPlayer(url: videoURL)

let motionManager = Swifty360MotionManager.shared

let swifty360View = Swifty360View(withFrame: view.bounds,
                                  player: player,
                                  motionManager: motionManager)
swifty360View.setup(player: player, motionManager: motionManager)
view.addSubview(swifty360View)

player.play()

使用 Storyboard 使用 Swifty360View

let videoURL = URL(fileURLWithPath: Bundle.main.path(forResource: "google-help-vr", ofType: "mp4")!)
let player = AVPlayer(url: videoURL)

let motionManager = Swifty360MotionManager.shared

swifty360View.setup(player: player, motionManager: motionManager)

player.play()

Swifty360View 创建点击手势识别器,为您的 viewcontroller 的视图创建一个识别器

let tapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(reorientVerticalCameraAngle))
view.addGestureRecognizer(tapGestureRecognizer)

和选择器函数

@objc func reorientVerticalCameraAngle() {
    swifty360View.reorientVerticalCameraAngleToHorizon(animated: true)
}

许可证

Swifty360Player 在 MIT 许可证下发布。有关详细信息,请参见 LICENSE。