vrPlayer

来自于:开发者立即使用

VR简介

虚拟现实技术是一种可以创建和体验虚拟世界的计算机仿真系统,它利用计算机生成一种模拟环境,是一种多源信息融合的、交互式的三维动态视景和实体行为的系统仿真使用户沉浸到该环境中。

vrPlayer 模块概述

本模块暂仅封装了mp4格式的vr视频播放。(备注:本模块播放vr视频只适合用高端手机,安卓系统6.0以上,ios系统8.0以上,请开发者自行进行控制。)

模块接口

addEventListener

监听手机不支持某互动类型(运动|触摸|运动&触摸)

addEventListener(callback(ret, err))

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status: true,   //布尔型;true
    code : 0,    //视频的互动类型(0:运动 1:触摸 2:运动&触摸)
    msg : '您的手机不支持运动模式'
}

示例代码

var demo = api.require('vrPlayer');
demo.addEventListener(function(ret) {
    alert(JSON.stringify(ret));
});

可用性

Android系统

可提供的1.0.0及更高版本

openVrPlayer

播放vr视频

openVrPlayer({params}, callback(ret, err))

params

rect:

  • 类型:JSON 对象
  • 描述:(必填项)模块的位置及尺寸
  • 备注:iOS,Android 必须传此参数。
  • 内部字段:
{
    x: 0,   //(必填项)数字类型;模块左上角的 x 坐标(相对于所属的 Window 或 Frame);默认值:0
    y: 0,   //(必填项)数字类型;模块左上角的 y 坐标(相对于所属的 Window 或 Frame);默认值:0
    w: 320, //(必填项)数字类型;模块的宽度;默认值:所属的 Window 或 Frame 的宽度
    h: 250  //(必填项)数字类型;模块的高度;默认值:250
}

fixedOn:

  • 类型:字符串
  • 描述:(可选项)模块所属 Frame 的名字,若不传则模块归属于当前 Window

fixed:

  • 类型:布尔
  • 描述:((可选项)模块是否随所属 Window 或 Frame 滚动
  • 默认值:true(不随之滚动)

url:

  • 类型:字符串
  • 描述:(必填项)视频资源地址,支持fs://、widget://(在 android 平台上不支持 widget)、http:// (暂仅支持mp4,请开发者自行控制)

interactive:

  • 类型:数字型
  • 描述:(可选项)设置视频的互动类型(0:运动 1:触摸 2:运动&触摸)
  • 默认值:0(运动)

display:

  • 类型:数字型
  • 描述:(可选项)设置视频显示类型(0:正常 1:双镜头)
  • 默认值:0(正常)

projection:

  • 类型:数字型
  • 描述:(可选项)设置视频投影类型(0:球体 1:圆顶180 2:圆顶230 3:圆顶向上180 4:圆顶向上230 5:立体 6:平面铺满 7:平面剪裁 8:平面全铺)
  • 默认值:0(球体)

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status: true      //布尔型;true||false
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    msg: ""
}

示例代码

var demo = api.require('vrPlayer');
demo.openVrPlayer({
    rect : {
        x : 0,
        y : 0,
        w : api.frameWidth,
        h : 300
    },
    fixedOn : api.frameName,
    fixed : true,
    url : 'widget://res/skyrim360.mp4',
    interactive : 0,
    display : 0,
    projection : 0
},function(ret, err) {
    alert(JSON.stringify(ret));
});

备注

如果安卓部分手机不支持运动模式,打开视频的时候会有2个回调,第一次回调status=false,错误结果在err里面,打开视频成功后会有一次回到status=true

可用性

iOS系统、Android系统

可提供的1.0.0及更高版本

switchInteractive

设置视频的互动

switchInteractive({params}, callback(ret, err))

params

interactive:

  • 类型:数字型
  • 描述:(可选项)设置视频的互动类型(0:运动 1:触摸 2:运动&触摸)
  • 默认值:0(运动)

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status: true   //布尔型;true||false
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    msg: ""
}

示例代码

var demo = api.require('vrPlayer');
demo.switchInteractive({
    interactive : 1
}, function(ret, err) {
});

可用性

iOS系统、Android系统

可提供的1.0.0及更高版本

switchDisplay

设置视频的显示模式

switchDisplay({params}, callback(ret, err))

params

display:

  • 类型:数字型
  • 描述:(可选项)设置视频显示类型(0:正常 1:双镜头)
  • 默认值:0(正常)

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status: true   //布尔型;true||false
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    msg: ""
}

示例代码

var demo = api.require('vrPlayer');
demo.switchDisplay({
    display : 0
}, function(ret, err) {
});

可用性

iOS系统、Android系统

可提供的1.0.0及更高版本

switchProjection

设置视频的影像模式

switchProjection({params}, callback(ret, err))

params

projection:

  • 类型:数字型
  • 描述:(可选项)设置视频投影类型(0:球体 1:圆顶180 2:圆顶230 3:圆顶向上180 4:圆顶向上230 5:立体 6:平面铺满 7:平面剪裁 8:平面全铺)
  • 默认值:0(球体)

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status: true   //布尔型;true||false
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    msg: ""
}

示例代码

var demo = api.require('vrPlayer');
demo.switchProjection({
    projection : 0
}, function(ret, err) {
});

可用性

iOS系统、Android系统

可提供的1.0.0及更高版本

closeVrPlayer

关闭

closeVrPlayer(callback(ret, err))

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status: true   //布尔型;true||false
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    msg: ""
}

示例代码

var demo = api.require('vrPlayer');
demo.closeVrPlayer(function(ret, err) {
});

可用性

iOS系统、Android系统

可提供的1.0.0及更高版本

getDuration

获取视频的时长

getDuration(callback(ret, err))

callback(ret, err)

ret:

  • 类型:JSON对象
  • 内部字段:
{
    status: true,   //布尔型;true||false
    duration : 1221122//视频的总时长
}

示例代码

var obj = api.require('vrPlayer');
obj.getDuration(function(ret, err) {
    alert(JSON.stringify(ret));
});

可用性

iOS、Android系统

可提供的1.0.0及更高版本

getCurrentPosition

获取已经播放的时长

getCurrentPosition(callback(ret, err))

callback(ret, err)

ret:

  • 类型:JSON对象
  • 内部字段:
{
    status: true,   //布尔型;true||false
    currentPosition : 2221//已经播放的时长
}

示例代码

var obj = api.require('vrPlayer');
obj.getCurrentPosition(function(ret, err) {
    alert(JSON.stringify(ret));
});

可用性

iOS、Android系统

可提供的1.0.0及更高版本

seekTo

设置播放进度位置(请根据视频最大时长进行参数控制传入)

seekTo({params}, callback(ret, err))

params

process:

  • 类型:数字型
  • 描述:(必填项)设置视频需要播放的时长
  • 默认值:0

示例代码

var playModule = api.require('vrPlayer');
playModule.seekTo({
    process : 402334
},function(ret, err) {
    alert(JSON.stringify(ret));
});

可用性

Android、iOS系统

可提供的1.0.0及更高版本