Adaptation de la rotation d'écran d'AR Session
Cet article présente comment configurer AR Session lorsqu'un WeChat Mini Program doit s'exécuter en mode paysage.
Avant de commencer
- Comprenez ce qu'est l'angle de rotation de l'image caméra par rapport à l'orientation de l'écran grâce à Rendu 3D piloté par AR.
- Comprenez les concepts et le flux d'AR Session.
Enum d'orientation d'écran du plugin Mega Mini Program
Note
Pour la définition de l'orientation de l'écran du téléphone, consultez les définitions officielles de systèmes tels que IOS et Android.
Enum d'orientation d'écran du plugin Mega Mini Program DeviceOrientation:
| Constant | Value | Description |
|---|---|---|
Portrait |
0 | Portrait |
LandscapeLeft |
90 | LandscapeLeft |
PortraitUpsideDown |
180 | PortraitUpsideDown |
LandscapeRight |
270 | LandscapeRight |
Modifier l'orientation d'écran dans la configuration globale de WeChat Mini Program
Ajoutez la configuration window dans app.json. Pour la définition précise, consultez Réagir aux changements de zone d'affichage.
"window": {
"pageOrientation": "landscape"
}
Renseignez "portrait" (écran portrait) ou "landscape" (écran paysage) selon la situation réelle.
Attention
N'utilisez jamais "auto" dans une application AR Mini Program. Dans certains cas, cela peut provoquer de graves anomalies de l'image AR.
Définir l'orientation d'écran
Appelez setDeviceOrientation(deviceOrientation) et transmettez la direction de rotation de l'écran. L'appel peut être effectué à tout moment et prend effet immédiatement.
Par exemple, pour utiliser le mode paysage lorsque l'écran est tourné de 90 degrés dans le sens antihoraire par rapport à la position portrait naturelle:
let deviceOrientation = mega.DeviceOrientation.LandscapeLeft;
session.setDeviceOrientation(deviceOrientation);
Le réglage de l'orientation d'écran fourni par le plugin mega sert à compenser l'absence de surveillance de l'orientation d'écran dans WeChat Mini Programs. WeChat ne fournit que deux options, portrait et landscape, dans le réglage pageOrientation, mais ces deux options seules ne suffisent pas pour les applications AR. Par exemple, le mode paysage tourné de 90 degrés dans le sens antihoraire depuis l'orientation naturelle est totalement différent du mode paysage tourné de 270 degrés dans le sens antihoraire depuis l'orientation naturelle.
Par conséquent, lorsque pageOrientation dans app.json est défini sur portrait, vous pouvez omettre l'appel à setDeviceOrientation(deviceOrientation), car la direction portrait naturelle d'un téléphone courant est l'orientation par défaut de session.
Lorsque pageOrientation dans app.json est défini sur landscape, vous devez appeler setDeviceOrientation(deviceOrientation) pour fixer l'orientation d'écran sur LandscapeLeft ou LandscapeRight