Adattamento della rotazione dello schermo di AR Session
Questo articolo introduce come configurare AR Session quando un WeChat Mini Program deve essere eseguito in modalità orizzontale.
Prima di iniziare
- Comprendere qual è l'angolo di rotazione dell'immagine della camera rispetto all'orientamento dello schermo tramite Rendering 3D guidato da AR.
- Comprendere concetti e flusso di AR Session.
Enum dell'orientamento schermo del plugin Mega Mini Program
Nota
Per la definizione dell'orientamento dello schermo del telefono, fare riferimento alle definizioni ufficiali di sistemi come IOS e Android.
Enum dell'orientamento schermo del plugin Mega Mini Program DeviceOrientation:
| Constant | Value | Description |
|---|---|---|
Portrait |
0 | Portrait |
LandscapeLeft |
90 | LandscapeLeft |
PortraitUpsideDown |
180 | PortraitUpsideDown |
LandscapeRight |
270 | LandscapeRight |
Modificare l'orientamento dello schermo nella configurazione globale di WeChat Mini Program
Aggiungere la configurazione window in app.json. Per la definizione specifica, vedere Rispondere alle variazioni dell'area di visualizzazione.
"window": {
"pageOrientation": "landscape"
}
Inserire "portrait" (schermo verticale) oppure "landscape" (schermo orizzontale) in base alla situazione reale.
Attenzione
Non usare mai "auto" in un'app AR Mini Program. In alcuni casi può causare gravi anomalie dell'immagine AR.
Impostare l'orientamento dello schermo
Chiamare setDeviceOrientation(deviceOrientation) e passare la direzione di rotazione dello schermo. Può essere chiamato in qualsiasi momento ed entra in vigore immediatamente.
Ad esempio, per usare la modalità orizzontale in cui lo schermo è ruotato di 90 gradi in senso antiorario rispetto alla posizione verticale naturale:
let deviceOrientation = mega.DeviceOrientation.LandscapeLeft;
session.setDeviceOrientation(deviceOrientation);
L'impostazione dell'orientamento dello schermo fornita dal plugin mega serve a compensare l'assenza del monitoraggio dell'orientamento dello schermo nei WeChat Mini Programs. WeChat fornisce solo due opzioni, portrait e landscape, nell'impostazione pageOrientation, ma per le applicazioni AR queste due opzioni da sole non sono sufficienti. Ad esempio, la modalità orizzontale ruotata di 90 gradi in senso antiorario rispetto all'orientamento naturale è completamente diversa dalla modalità orizzontale ruotata di 270 gradi in senso antiorario rispetto all'orientamento naturale.
Pertanto, quando pageOrientation in app.json è impostato su portrait, si può omettere la chiamata a setDeviceOrientation(deviceOrientation), perché la direzione verticale naturale di un telefono comune è l'orientamento predefinito di session.
Quando pageOrientation in app.json è impostato su landscape, è necessario chiamare setDeviceOrientation(deviceOrientation) per fissare l'orientamento dello schermo su LandscapeLeft oppure LandscapeRight