NYT360Video 1.1.0

NYT360Video 1.1.0

测试已测试
语言语言 Obj-CObjective C
许可证 自定义
发布上次发布2017年3月

Chris Dzombak 维护。



  • 纽约时报

纽约时报的360°视频播放

NYT360Video 播放 球形360°视频,允许用户通过平移手势和iOS设备的陀螺仪来探索视频。视频可以通过文件或网络流,通过标准的AVPlayer实例进行播放。

它不提供播放控制用户界面(如播放/暂停按钮);它旨在嵌入您自己的视频播放器实现中。

在时报,我们使用NYT360Video来支持我们自己内容的播放

Animation of 360º video playback in the Times’ iPhone app

用法

NYT360ViewController 是库的入口点。通过一个 AVPlayer 实例和您的应用程序的运动管理器来 初始化 它。(运动管理将在下一节讨论。)

一旦初始化完成,请通过 视图控制器包含 来将您的 NYT360ViewController 实例嵌套到视图层次结构中。

示例应用程序演示 如何设置此。

运动管理

Apple的文档警告说:

应用应只创建一个CMMotionManager类的实例。

为了应对这个限制,NYT360Video不需要创建自己的CMMotionManager实例来接收设备运动更新。相反,您将在创建NYT360ViewController时注入运动管理器。

对这一运动管理器的期望由 NYT360MotionManagement 协议 规定;请参阅头文件以获取详细描述这些要求。

如果您的应用程序在其他地方不使用CMMotionManager,您可以使用 与此库一起提供的NYT360MotionManager 单例 来满足这些要求。

否则,如果您已经有了一个运动管理器,您需要使其符合 NYT360MotionManagement 并在创建NYT360ViewController时使用它。

管理手势交互

您可能希望根据特定情况限制应用程序中 NYT360ViewController 的手势交互——例如,当嵌入可垂直滚动的视图时,NYT360ViewController 应该不允许拦截垂直拖动手势。NYT360Video 提供了多种方法来实现这一点。

首先,NYT360ViewController 提供了属性 来配置允许哪些运动轴。这是解决上述示例问题的最简单方法。

该库将它的拖动手势识别器作为属性公开在 NYT360ViewController 上,以便与其他手势识别器进行更高级的集成。最后,引入了类型 NYT360CameraPanGestureRecognizer,以便宿主应用程序可以更轻松地配置与其他手势识别器的交互,而无需引用特定的 NYT360Video 手势识别器实例。

要求

NYT360Video 支持 iOS 8 及以上版本。

已知问题

  • iOS 10 CoreAudio 崩溃 - 当设备运行 iOS 10(至少从 Beta 7 开始)时,如果设备处于锁定状态且 NYT360ViewController可见(暂停或不),宿主应用程序将崩溃。崩溃由 CoreAudio 异常引起。对于某些应用程序有效的方法是,在宿主应用程序的 plist 文件中启用后台音频功能。在问题 #37 中可以找到该问题的扩展讨论

有关该项目的问题跟踪器,请参阅 这里

贡献

通过 GitHub 的拉动请求系统欢迎贡献。作为一个注意事项

  • 包含单元测试(如果可行)的贡献更有可能被合并。
  • 添加播放器 UI 的拉动请求不太可能被接受。我们认为这是一个独立的责任;这个库旨在提供仅低级 360 度特定的播放功能。

  1. 分支此存储库
  2. 创建您的功能分支:git checkout -b my-awesome-new-feature
  3. 提交您的更改:git commit -m '添加一些酷炫的功能' 请逻辑性地拆分您的提交,并确保编写良好的提交消息
  4. 将您的分支推送: git push origin my-awesome-new-feature
  5. 向此存储库提交一个 拉动请求

版本历史

请参阅 CHANGELOG.md

许可证

NYT360Video 在 Apache 2.0 许可证下发布。