AR Session adaptação de rotação de tela
Este artigo descreve como configurar uma AR Session quando é necessário executar um mini-programa WeChat em modo paisagem.
Antes de começar
- Compreenda o que é o ângulo de rotação da imagem da câmera em relação à orientação da tela através de Renderização 3D orientada por AR.
- Entenda o conceito e fluxo da AR Session.
Enumeração de orientação de tela do plug-in Mega mini-programa
Nota
Consulte as definições oficiais de sistemas como IOS, Android, etc., para a definição da orientação da tela do telefone.
Enumeração de orientação de tela do plug-in Mega mini-programa DeviceOrientation:
| Constante | Valor | Descrição |
|---|---|---|
Portrait |
0 | Portrait |
LandscapeLeft |
90 | LandscapeLeft |
PortraitUpsideDown |
180 | PortraitUpsideDown |
LandscapeRight |
270 | LandscapeRight |
Modificar a orientação da tela na configuração global do mini-programa WeChat
Adicione a configuração window em app.json, conforme definido em Mudanças de área de exibição responsiva.
"window": {
"pageOrientation": "landscape"
}
Preencha com "portrait" (retrato) ou "landscape" (paisagem) conforme a situação.
Cuidado
Nunca use "auto" em aplicativos de mini-programa AR, pois em alguns casos pode causar anomalias graves na imagem AR.
Configurar a orientação da tela
Chame setDeviceOrientation(deviceOrientation) passando a direção de rotação da tela. Pode ser chamado a qualquer momento, com efeito imediato.
Por exemplo, para usar no modo paisagem com rotação de 90 graus no sentido anti-horário em relação à posição vertical natural:
let deviceOrientation = mega.DeviceOrientation.LandscapeLeft;
session.setDeviceOrientation(deviceOrientation);
A configuração de orientação de tela fornecida pelo plug-in mega visa compensar a falta de monitoramento de orientação de tela no mini-programa WeChat. O WeChat oferece apenas as opções portrait e landscape na configuração pageOrientation, o que é insuficiente para aplicativos AR. Por exemplo, um modo paisagem girado 90 graus no sentido anti-horário em relação à orientação natural é completamente diferente de um girado 270 graus.
Portanto, quando pageOrientation em app.json estiver definido como portrait, você pode omitir a chamada de setDeviceOrientation(deviceOrientation), pois a orientação vertical natural do telefone geralmente é a padrão da session.
Quando pageOrientation em app.json estiver definido como landscape, você deve chamar setDeviceOrientation(deviceOrientation) para fixar a orientação da tela como LandscapeLeft ou LandscapeRight