android - vertical - El video grabado se gira 90 grados después de cargarlo en Internet
convertir video vertical en horizontal online (2)
Algunos reproductores de video consideran la sugerencia de orientación al reproducir un video. Otros jugadores no lo hacen. Solo intente reproducir este video en su PC con Windows Media Player, Quick Time y Real Player y vea las diferencias.
Probablemente el problema no sea su código, sino el reproductor de video que está usando para ver su video.
Encontré que el video grabado en modo retrato girará 90 grados. Por lo tanto, utilicé el siguiente código para rotarlo cuando configuré el MediaRecorder:
if (this.getResources().getConfiguration().orientation !=Configuration.ORIENTATION_LANDSCAPE)
{
mediaRecorder.setOrientationHint(270);
}
else
{
mediaRecorder.setOrientationHint(0);
}
mediaRecorder.setOutputFile(file_name);
mediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.DEFAULT);
mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);
La vista previa también está en la orientación correcta, ya que usé el siguiente código en el método surfaceCreated:
Camera.Parameters params = camera.getParameters();
if (this.getResources().getConfiguration().orientation
!=Configuration.ORIENTATION_LANDSCAPE)
{
camera.setDisplayOrientation(90);
}
else
{
camera.setDisplayOrientation(0);
}
params.setRotation(90);
camera.setParameters(params);
De esta manera, el video grabado está en la orientación correcta cuando se reproduce en el dispositivo. Sin embargo, el video sigue girando 90 grados después de cargarlo en Internet. ¿Alguien tiene consejos sobre esto? Muchas gracias.
Use mMediaRecorder.setOrientationHint(int)
Esto definitivamente funciona. Es posible que tenga que trabajar las distintas orientaciones para obtener valores int para todas las cámaras en potrait y landscape.