VRDisplay: phương thức exitPresent()
Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.
Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.
Phương thức exitPresent() của giao diện VRDisplay dừng việc VRDisplay trình chiếu cảnh.
Note: Phương thức này là một phần của WebVR API cũ. Nó đã được thay thế bởi WebXR Device API.
Cú pháp
exitPresent()
Tham số
Không có.
Giá trị trả về
Một promise được giải quyết khi quá trình trình chiếu kết thúc. Nếu VRDisplay không đang trình chiếu khi exitPresent() được gọi, promise sẽ bị từ chối.
Ví dụ
if (navigator.getVRDisplays) {
console.log("WebVR 1.1 supported");
// Then get the displays attached to the computer
navigator.getVRDisplays().then((displays) => {
// If a display is available, use it to present the scene
if (displays.length > 0) {
vrDisplay = displays[0];
console.log("Display found");
// Starting the presentation when the button is clicked: It can only be called in response to a user gesture
btn.addEventListener("click", () => {
if (btn.textContent === "Start VR display") {
vrDisplay.requestPresent([{ source: canvas }]).then(() => {
console.log("Presenting to WebVR display");
// Set the canvas size to the size of the vrDisplay viewport
const leftEye = vrDisplay.getEyeParameters("left");
const rightEye = vrDisplay.getEyeParameters("right");
canvas.width =
Math.max(leftEye.renderWidth, rightEye.renderWidth) * 2;
canvas.height = Math.max(
leftEye.renderHeight,
rightEye.renderHeight,
);
// stop the normal presentation, and start the vr presentation
window.cancelAnimationFrame(normalSceneFrame);
drawVRScene();
btn.textContent = "Exit VR display";
});
} else {
vrDisplay.exitPresent();
console.log("Stopped presenting to WebVR display");
btn.textContent = "Start VR display";
// Stop the VR presentation, and start the normal presentation
vrDisplay.cancelAnimationFrame(vrSceneFrame);
drawScene();
}
});
}
});
}
Note: Bạn có thể xem toàn bộ mã này tại raw-webgl-example.
Thông số kỹ thuật
Phương thức này là một phần của WebVR API cũ đã được thay thế bởi WebXR Device API. Nó không còn trên đường trở thành tiêu chuẩn nữa.
Cho đến khi tất cả các trình duyệt đã triển khai WebXR API mới, khuyến nghị sử dụng các framework như A-Frame, Babylon.js, hoặc Three.js, hay một polyfill, để phát triển ứng dụng WebXR hoạt động trên tất cả các trình duyệt. Đọc hướng dẫn Porting from WebVR to WebXR của Meta để biết thêm thông tin.