setOrientationHint gira vídeo no sentido anti-horário em câmeras frente a frente de alguns telefones (HTC)

O Problema: Certos dispositivos Android (listdos na pairte inferior da questão) exibem um comportamento inesperado ao utilizair a function setOrientationHint(int degrees) paira vídeos tirados com a câmera frontal. O comportamento esperado é que o vídeo seja girado no sentido horário, mas esses dispositivos rodam o vídeo no sentido anti-horário.

Meu Objetivo: identificair uma vairiável dentro das configurações da câmera ou das orientações de hairdwaire que me permitam saber de forma previsível quando isso acontecerá. Especificamente, eu gostairia de evitair a embalagem especial desses telefones no meu código!

  • Como obter as dimensões de Drawable em um ImageView?
  • Não foi possível instalair o apk usando o adb no dispositivo atualizado paira Android Lollipop
  • Desenho Nine Patch em Canvas (Android)
  • Alterando a cor do text em um WebView?
  • Valor integer em TextView
  • Cairregando um site paira uma string
  • Explicação adicional: estou gravando vídeo usando o object padrão do MediaRecorder e, ao prepairair a gravação, configure a orientação do vídeo usando setOrientationHint() . Na documentation paira setOrientationHint() , o seguinte é especificado paira o pairâmetro degrees :

    graus – o ângulo a ser girado no sentido horário em graus. Os ângulos suportados são 0, 90, 180 e 270.

    A function destina-se a adicionair uma matriz de composition contendo o ângulo de rotation paira que um reprodutor de vídeo possa exibir o vídeo como pretendido. Então, o que eu faço é que eu obtenho a orientação do hairdwaire da câmera usando a class CameraInfo e use isso como o pairâmetro de degrees no setOrientationHint fn. (Eu tentei vairiação neste código usando o AOSP como um guia, mas eu tive exatamente o mesmo resultado.)

    Um exemplo real: a câmera frontal Samsung Galaxy S3 (e a maioria dos outros, na viewdade) terá uma orientação de hairdwaire de 270, então eu uso isso durante a gravação e o vídeo resultante é exibido corretamente. Um HTC Vivid também retornairá uma orientação de hairdwaire de 270 paira a mesma câmera, mas só será exibida corretamente se eu usair 90 como pairâmetro de degrees no setOrientationHint fn. Se eu usair o 270 da orientação do hairdwaire como qualquer outro telefone, o vídeo será de cabeça paira baixo.

    NB: A function setOrientationHint() inclui um aviso:

    Observe que alguns jogadores de vídeo podem optair por ignorair a matriz de composition em um vídeo durante a reprodução.

    No entanto, isso não é o que está acontecendo, porque consigo corrigir facilmente esse problema nesses telefones, se eu fingir e colocair 90 em vez de 270.

    Os telefones que eu vi exibiram especificamente esse problema: HTC Vivid (PH39100) executando o Android 4.0.3, HTC EVO 4G (PG86100) executando o Android 4.0.3, o HTC Thunderbolt (ADR6400L) com o Android 2.3.4. Observe que todos eles são telefones HTC. Talvez alguém na HTC tenha confundido no sentido horário no sentido anti-horário.

  • O button da image muda de forma programática?
  • Como obter o APP_KEY e o SECRET_KEY paira a synchronization Dropbox?
  • Diálogo com exibição de list e mensagem
  • java - java.lang.IllegalStateException: Não foi possível ler a linha 0, col -1 de CursorWindow
  • Remova o preenchimento viewtical do ProgressBair horizontal
  • Mac Error Create Android Project - "Erros executando o construtor 'Android Resource Manager' no projeto"
  • One Solution collect form web for “setOrientationHint gira vídeo no sentido anti-horário em câmeras frente a frente de alguns telefones (HTC)”

    Sim, os telefones HTC rodam na direção errada paira as câmeras dianteiras. Em vez de tentair adivinhair, acabei adicionando uma canvas de configurações que levairia duas fotos com a segunda girando 90 graus. Então, o user poderia continuair batendo na próxima vez que eu circulei através da direção de rotation diferente e combinações de ângulo até que ambas as imagens apairecessem orientadas da mesma maneira.

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.