跳到主要内容

VR 插件

更新时间:2026-10-28 15:18:58

RTCXVRPlugin 是 RTCX Web SDK 的 VR(虚拟现实)全景视频播放插件。它允许在标准的 Web 播放器中渲染 360° 全景视频,并提供相关的交互和空间音频支持。可选引入

引入​

import { RTCXVRPlugin, RTCXVRPluginTypes } from '@rtcx/websdk/vr-plugin'
/**
* VR 插件
* @public
*/
export declare class RTCXVRPlugin {

/**
*
* @param player - 见: RTCXWebPlayerTypes.IRTCXWebPlayer
* @param pluginOption - VRPluginOption
*/
constructor(player: any, pluginOption?: VRPluginOption);
}

插件选项​

RTCXVRPluginTypes.VRPluginOption

/**
* 播放器VR插件配置项
* @public
*/
export interface VRPluginOption {
/**
* 是否启用运动 / 陀螺仪控制。 默认为true
*/
motionControls?: boolean;
/**
* 视频投影类型(如等距柱状投影等)。
*/
projection?: VRProjectionEnum;
/**
* 渲染球体的细节层级,数值越大球体越平滑,但性能消耗越高。 默认32
*/
sphereDetail?: number;
/**
* Omnitone音频处理插件
*/
omnitone?: any;
/**
* 传递给 Omnitone 的额外配置项。
*/
omnitoneOptions?: any;
}

渲染类型​

RTCXVRPluginTypes.VRProjectionEnum

/**
* 播放器VR模式枚举
* @public
*/
export enum VRProjectionEnum {
/**
* 该视频不是 360° 视频。
*/
Projection_NONE = 'NONE',
/**
* 视频为半球形,用户不应能够转向自己身后。
*/
Projection_180 = '180',
/**
* 用于左右并排(side-by-side)的 180° 视频。视频为半球形,用户不应能够转向自己身后。
*/
Projection_180_LR = '180_LR',
/**
* 用于单目的 180° 视频。视频为半球形,用户不应能够转向自己身后。
*/
Projection_180_MONO = '180_MONO',
/**
* 视频为完整球面。
*/
Projection_360 = '360',
/**
* 视频为立方体
*/
Projection_360_CUBE = '360_CUBE',
/**
* 用于左右并排的 360° 视频。
*/
Projection_360_LR = '360_LR',
/**
* 用于上下排列(top-to-bottom)的 360° 视频。
*/
Projection_360_TB = '360_TB',
/**
* 用于等角立方体映射(Equi-Angular Cubemap,EAC)视频。
*/
Projection_EAC = 'EAC',
/**
* 用于左右并排的等角立方体映射(EAC)视频。
*/
Projection_EAC_LR = 'EAC_LR',
}

使用示例​


import {
RTCXDeviceMgrTypes,
RTCXWebPlayer,
RTCXWebPlayerTypes,
} from '@rtcx/websdk'
import { RTCXVRPlugin, RTCXVRPluginTypes } from '@rtcx/websdk/vr-plugin'

const projection = ref<RTCXVRPluginTypes.VRProjectionEnum>(
RTCXVRPluginTypes.VRProjectionEnum.Projection_NONE
)


// 初始化播放器
const player = new RTCXWebPlayer({
//... 初始化选项
});

// 播放器注册VR插件

if (projection.value !== RTCXVRPluginTypes.VRProjectionEnum.Projection_NONE) {
const vrOptions = {
projection: VRProjectionEnum.Projection_360,
sphereDetail: 32,
};
rtcxWebPlayer.registerPlugin('vr', RTCXVRPlugin, vrOptions)
}