VideoTexture 未在 VR 中播放
VideoTexture is not playing in VR
起初纹理工作正常并且视频按预期播放,但是当通过 VRDisplay.requestPresent
进入 VR 时它停止了。为什么会这样,如何解决?
VR 显示器有自己的渲染循环。通常 needsUpdate
在每个动画帧上由 three.js 自动设置为 true
,但这仅适用于默认显示。
要解决此问题,请从 vrdisplayconnect
事件中获取 VR 显示并创建您自己的更新循环。例如
let display = e.display;
let displayUpdateLoop = () =>
{
// May get a warning if getFrameData is not called.
let frameData = new VRFrameData();
display.getFrameData(frameData);
videoTexture.needsUpdate = true;
// Stop loop if no longer presenting.
if (display.isPresenting)
display.requestAnimationFrame(displayUpdateLoop);
}
display.requestAnimationFrame(displayUpdateLoop);
起初纹理工作正常并且视频按预期播放,但是当通过 VRDisplay.requestPresent
进入 VR 时它停止了。为什么会这样,如何解决?
VR 显示器有自己的渲染循环。通常 needsUpdate
在每个动画帧上由 three.js 自动设置为 true
,但这仅适用于默认显示。
要解决此问题,请从 vrdisplayconnect
事件中获取 VR 显示并创建您自己的更新循环。例如
let display = e.display;
let displayUpdateLoop = () =>
{
// May get a warning if getFrameData is not called.
let frameData = new VRFrameData();
display.getFrameData(frameData);
videoTexture.needsUpdate = true;
// Stop loop if no longer presenting.
if (display.isPresenting)
display.requestAnimationFrame(displayUpdateLoop);
}
display.requestAnimationFrame(displayUpdateLoop);