VRFrameData: свойство timestamp
Устаревшее: Эта функция больше не рекомендуется. Хотя некоторые браузеры могут её поддерживать, она, возможно, уже удалена из соответствующих веб-стандартов, может быть в процессе удаления или поддерживается только для совместимости. Избегайте её использования и, при возможности, обновите существующий код; см. таблицу совместимости в конце этой страницы для принятия решения. Помните, что эта функция может перестать работать в любое время.
Нестандартная: Эта функция нестандартна и не входит в состав стандартов. Не используйте её на производственных сайтах, ориентированных на веб: она не будет работать для каждого пользователя. Также могут быть значительные несовместимости между реализациями, и поведение может измениться в будущем.
Чтение-только свойство timestamp интерфейса VRFrameData возвращает постоянно увеличивающееся значение отметки времени, представляющее момент обновления кадра.
Примечание: Это свойство входило в состав старого API WebVR. Оно было заменено WebXR Device API.
Отметки времени полезны для определения, были ли обновлены данные о состоянии положения из аппаратного обеспечения. Поскольку значения монотонно возрастают, их можно сравнивать для определения порядка обновлений — новые значения всегда будут больше или равны старым значениям.
Отметка времени начинается с 0 в первый раз, когда VRDisplay.getFrameData() вызывается для заданного VRDisplay.
Значение
Объект DOMHighResTimeStamp.
Примеры
const frameData = new VRFrameData();
let vrDisplay;
navigator.getVRDisplays().then((displays) => {
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", () => {
vrDisplay.requestPresent([{ source: canvas }]).then(() => {
drawVRScene();
});
});
});
// WebVR: Draw the scene for the WebVR display.
function drawVRScene() {
// WebVR: Request the next frame of the animation
vrSceneFrame = vrDisplay.requestAnimationFrame(drawVRScene);
// Populate frameData with the data of the next frame to display
vrDisplay.getFrameData(frameData);
// grab the current timestamp on each run of the rendering loop
// and do something with it
frameData.timestamp;
// …
// WebVR: Indicates that we are ready to present the rendered frame to the VR display
vrDisplay.submitFrame();
}
Спецификации
Это свойство входило в состав старого API WebVR, которое было заменено WebXR Device API. Оно больше не входит в план стандартизации.
До тех пор, пока все браузеры не реализуют новые WebXR API, рекомендуется полагаться на фреймворки, такие как A-Frame, Babylon.js или Three.js, или полифил, для разработки приложений WebXR, которые будут работать во всех браузерах. Прочитайте руководство Meta's Porting from WebVR to WebXR для получения дополнительной информации.
Совместимость с браузерами
| Рабочие столы | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
timestamp |
Нет | 15–79 | 9864–98Поддержка macOS была включена в Firefox 64.55–98Поддержка Windows была включена в Firefox 55. |
Нет | Нет | Нет | 55–98 | Нет | Нет | 6.0Google Cardboard поддерживается в Samsung Internet 7.0. |
Нет |
См. также
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/VRFrameData/timestamp