NYT360Video 播放 球形360°视频,允许用户通过平移手势和iOS设备的陀螺仪来探索视频。视频可以通过文件或网络流,通过标准的AVPlayer
实例进行播放。
它不提供播放控制用户界面(如播放/暂停按钮);它旨在嵌入您自己的视频播放器实现中。
在时报,我们使用NYT360Video来支持我们自己内容的播放
NYT360ViewController
是库的入口点。通过一个 AVPlayer
实例和您的应用程序的运动管理器来 初始化 它。(运动管理将在下一节讨论。)
一旦初始化完成,请通过 视图控制器包含 来将您的 NYT360ViewController
实例嵌套到视图层次结构中。
示例应用程序演示 如何设置此。
Apple的文档警告说:
应用应只创建一个
CMMotionManager
类的实例。
为了应对这个限制,NYT360Video不需要创建自己的CMMotionManager
实例来接收设备运动更新。相反,您将在创建NYT360ViewController
时注入运动管理器。
对这一运动管理器的期望由 NYT360MotionManagement
协议 规定;请参阅头文件以获取详细描述这些要求。
如果您的应用程序在其他地方不使用CMMotionManager
,您可以使用 与此库一起提供的NYT360MotionManager
单例 来满足这些要求。
否则,如果您已经有了一个运动管理器,您需要使其符合 NYT360MotionManagement
并在创建NYT360ViewController
时使用它。
您可能希望根据特定情况限制应用程序中 NYT360ViewController
的手势交互——例如,当嵌入可垂直滚动的视图时,NYT360ViewController
应该不允许拦截垂直拖动手势。NYT360Video 提供了多种方法来实现这一点。
首先,NYT360ViewController
提供了属性 来配置允许哪些运动轴。这是解决上述示例问题的最简单方法。
该库将它的拖动手势识别器作为属性公开在 NYT360ViewController
上,以便与其他手势识别器进行更高级的集成。最后,引入了类型 NYT360CameraPanGestureRecognizer
,以便宿主应用程序可以更轻松地配置与其他手势识别器的交互,而无需引用特定的 NYT360Video 手势识别器实例。
NYT360Video 支持 iOS 8 及以上版本。
NYT360ViewController
可见(暂停或不),宿主应用程序将崩溃。崩溃由 CoreAudio 异常引起。对于某些应用程序有效的方法是,在宿主应用程序的 plist 文件中启用后台音频功能。在问题 #37 中可以找到该问题的扩展讨论。有关该项目的问题跟踪器,请参阅 这里。
通过 GitHub 的拉动请求系统欢迎贡献。作为一个注意事项
添加播放器 UI 的拉动请求不太可能被接受。我们认为这是一个独立的责任;这个库旨在提供仅低级 360 度特定的播放功能。
git checkout -b my-awesome-new-feature
git commit -m '添加一些酷炫的功能'
请逻辑性地拆分您的提交,并确保编写良好的提交消息。git push origin my-awesome-new-feature
请参阅 CHANGELOG.md。
NYT360Video 在 Apache 2.0 许可证下发布。