Adaptação da rotação de tela da AR Session
Este artigo apresenta como configurar AR Session quando um WeChat Mini Program precisa executar em modo paisagem.
Antes de começar
- Entenda qual é o ângulo de rotação da imagem da câmera em relação à orientação da tela por meio de Renderização 3D orientada por AR.
- Entenda os conceitos e fluxo de AR Session.
Enum de orientação de tela do plugin Mega Mini Program
Nota
Para a definição da orientação da tela do telefone, consulte as definições oficiais de sistemas como IOS e Android.
Enum de orientação de tela do plugin Mega Mini Program DeviceOrientation:
| Constant | Value | Description |
|---|---|---|
Portrait |
0 | Portrait |
LandscapeLeft |
90 | LandscapeLeft |
PortraitUpsideDown |
180 | PortraitUpsideDown |
LandscapeRight |
270 | LandscapeRight |
Modificar a orientação de tela na configuração global do WeChat Mini Program
Adicione a configuração window em app.json. Para a definição específica, consulte Responder a alterações da área de exibição.
"window": {
"pageOrientation": "landscape"
}
Preencha "portrait" (tela retrato) ou "landscape" (tela paisagem) conforme a situação real.
Cuidado
Nunca use "auto" em um aplicativo AR Mini Program. Em alguns casos, isso pode causar anomalias graves na imagem AR.
Definir orientação de tela
Chame setDeviceOrientation(deviceOrientation) e passe a direção de rotação da tela. Ele pode ser chamado a qualquer momento e entra em vigor imediatamente.
Por exemplo, para usar o modo paisagem em que a tela é girada 90 graus no sentido anti-horário em relação à posição retrato natural:
let deviceOrientation = mega.DeviceOrientation.LandscapeLeft;
session.setDeviceOrientation(deviceOrientation);
A configuração de orientação de tela fornecida pelo plugin mega serve para compensar a ausência de monitoramento de orientação de tela nos WeChat Mini Programs. WeChat fornece apenas duas opções, portrait e landscape, na configuração pageOrientation, mas para aplicações AR essas duas opções sozinhas não são suficientes. Por exemplo, o modo paisagem girado 90 graus no sentido anti-horário a partir da orientação natural é completamente diferente do modo paisagem girado 270 graus no sentido anti-horário a partir da orientação natural.
Portanto, quando pageOrientation em app.json está definido como portrait, você pode omitir a chamada a setDeviceOrientation(deviceOrientation), porque a direção retrato natural de um telefone comum é a orientação padrão de session.
Quando pageOrientation em app.json está definido como landscape, você deve chamar setDeviceOrientation(deviceOrientation) para fixar a orientação de tela em LandscapeLeft ou LandscapeRight