Compartir a través de


Coordinar la sincronización del sistema con la comunicación remota holográfica y la API de Windows Mixed Reality

Con la API de Windows Mixed Reality, el sistema de coordenadas de usuario se ajusta a spatialStationaryFrameOfReference.

Sugerencia

Puede encontrar un ejemplo sencillo en los ejemplos remotos y de reproductor dentro del repositorio de github de ejemplos de Holographic Remoting. Quite la marca de comentario #define ENABLE_USER_COORDINATE_SYSTEM_SAMPLE dentro de los archivos SampleRemoteApp.h y SamplePlayerMain.h para habilitar el código de ejemplo.

Establecer y actualizar el sistema de coordenadas de usuario en la aplicación player

Para establecer y actualizar el sistema de coordenadas del usuario, llame UpdateUserSpatialFrameOfReference al contexto del jugador y pase spatialCoordinateSystem a él. Un SpatialCoordinateSystem puede, por ejemplo, ser spatialStationaryFrameOfReference, SpatialLocatorAttachedFrameOfReference o SpatialAnchor.

// In the Player app:

// Create a stationary frame of reference
winrt::Windows::Perception::Spatial::SpatialStationaryFrameOfReference spatialFrameOfReference = nullptr;
winrt::Windows::Perception::Spatial::SpatialLocator spatialLocator = winrt::Windows::Perception::Spatial::SpatialLocator::GetDefault();
if (spatialLocator != nullptr)
{
    spatialFrameOfReference = spatialLocator.CreateStationaryFrameOfReferenceAtCurrentLocation(float3(0.0f, 0.0f, 0.0f), quaternion(0, 0, 0, 1), 0.0);
}

...

// Update the user coordinate system with the coordinate system of the spatial frame of reference
try
{
    SpatialCoordinateSystem userCoordinateSystem = spatialFrameOfReference.CoordinateSystem();
    m_playerContext.UpdateUserSpatialFrameOfReference(userCoordinateSystem);
}
catch (...)
{
}

Nota

Con el ejemplo SpatialStationaryFrameOfReference, UpdateUserSpatialFrameOfReference debe llamarse en un intervalo regular para evitar el desfase después de la pérdida del seguimiento de dispositivos, incluso si el sistema de coordenadas del usuario no ha cambiado.

Obtener el sistema de coordenadas de usuario en la aplicación remota

Para acceder al sistema de coordenadas del usuario, llame GetUserSpatialFrameOfReference a en el contexto remoto. GetUserSpatialFrameOfReference devuelve un SpatialStationaryFrameOfReference, que representa el sistema de coordenadas del usuario.

// In the Remote app:
winrt::Windows::Perception::Spatial::SpatialStationaryFrameOfReference spatialUserFrameOfReference = m_remoteContext.GetUserSpatialFrameOfReference();

Consulte también