2 如何启动视频播放器

2.1 设置 Action

在Android层初始化Intent,通过设置action “picovr.intent.action.player” 来启动内置视频播放器。

2.2 参数设置

以下是在Intent中要输入的参数。本地视频需要输入uri(path)和title,而视频直播资源则至少需要输入uri。

参数 类型 备注
uri String 播放地址(必传)
title String 视频名称(必传)
videoType String 视频类型
playTime Int 播放起点
videoSource String 视频来源。0:网络 1:本地 2:飞屏 3:直播 4:乐播
scenes Int 改变背景。0代表pmax;1代表空白;2代表海滩影院。
position Float 相机的位置(仅在大屏模式下生效)
seekPlay Boolean 跳到最后播放的位置。传true重新播放,传false续播;true表示在屏幕关闭以及再次打开后,视频将从头开始播放。
loop Boolean 是否循环播放列表视频。传true循环播放列表视频。
isControl Boolean 是否显示控制面板UI。传true显示UI。
play_list String 视频播放列表。列表格式应为JSON。
shouldPlayIndex Int 选择播放列表中的视频进行播放。

play_list JSON 数据格式为

[{\"index\":0,\"name\":\"test2D.mp4\",\"playMode\":0,\"url\":\"%2Fsdcard%2Ftest2D.mp4\"},{\"index\":1,\"name\":\"test.mp4\",\"playMode\":2,\"url\":\"%2Fsdcard%2Ftest.mp4\"}]

2.3 权限

在AndroidManifest.xml 文件中,需要添加以下权限:

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

2.4 所支持的视频格式

下表为支持的视频类型以及类型参数:

视频类型   参数
_2D 2D 0
_3D_LR 3D左右 1
_360 全景 2D 2
_3D360_TB 全景 3D 上下 3
_3D360_BT 全景 3D 下上 4
_3D360_LR 全景 3D 左右 5
_3D360_RL 全景 3D 右左 6
_3D_TB 3D 上下 7
_3D_BT 3D 下上 8
_3D_RL 3D 右左 9
_180 180° 2D 10
_3D180_TB 180° 3D 上下 11
_3D180_BT 180° 3D 下上 12
_3D180_LR 180° 3D 左右 13
_3D180_RL 180° 3D 右左 14
_2DFishEye FishEye 2D 15
_3DFishEye_TB FishEye 3D 上下 16
_3DFishEye_BT FishEye 3D 下上 17
_3DFishEye_LR FishEye 3D 左右 18
_3DFishEye_RL FishEye 3D 右左 19
_CubeMap Youtube 20
_CubeMap_LR Youtube 3D 左右 21

注意: 如果没有任何指定的视频类型,则默认为0(2D)。

2.5 示例代码

aar文件下载地址: https://github.com/picoxr/launch-pico-player/blob/master/resource/launch-pico-player.aar

在Unity项目中,如何调用aar文件中的函数,请参考示例代码。

示例代码:

AndroidJavaObject context = new AndroidJavaClass("com.unity3d.player.UnityPlayer").GetStatic<AndroidJavaObject>("currentActivity");
AndroidJavaObject videoPlayer = new AndroidJavaObject("com.picovr.picoplaymanager.PicovrLaunchPlayer");
videoPlayer.Call<AndroidJavaObject>("uri", "/sdcard/test.mp4", false)
           .Call<AndroidJavaObject>("playTime", 20)
           .Call<AndroidJavaObject>("scenes", 2)
           ...
           .Call("launchVideoPlayer", context);