Обнаружить ориентацию записанного видео в android

Я хочу сделать свой пользовательский медиаплеер и получить информацию о ориентации видео (для обнаружения его записи с передней или задней камеры). Для jpeg-изображений я могу использовать ExifInterface.TAG_ORIENTATION но для видео, как я могу найти эту информацию.

Я попытался захватить кадр из видеофайла и преобразовать его в jpeg, но снова он всегда обеспечивает ориентацию 0 во всех случаях.

Пожалуйста, помогите мне. Заранее спасибо.

Уровень Api 17 позже, мы можем извлечь ориентацию видео: MediaMetadataRetriever

 MediaMetadataRetriever m = new MediaMetadataRetriever(); m.setDataSource(path); Bitmap thumbnail = m.getFrameAtTime(); // if (Build.VERSION.SDK_INT >= 17) { String s = m.extractMetadata(MediaMetadataRetriever.METADATA_KEY_VIDEO_ROTATION); Log.e("Rotation", s); } 

FFmpegMediaMetadataRetriever может это сделать, и он работает с API 7+:

 FFmpegMediaMetadataRetriever fmmr = new FFmpegMediaMetadataRetriever(); fmmr.setDataSource(path); String rotation = fmmr.extractMetadata(FFmpegMediaMetadataRetriever.METADATA_KEY_VIDEO_ROTATION); Log.e("Rotation", rotation); fmmr.release(); 

Слишком много усилий я узнал, что медиаплеер обеспечивает высоту и ширину видеофайла, из которого мы можем закончить поворот видео.

 MediaPlayer mp = new MediaPlayer(); try { mp.setDataSource(viewSource); mp.prepare(); mp.setOnVideoSizeChangedListener(new OnVideoSizeChangedListener() { @Override public void onVideoSizeChanged(MediaPlayer mp, int width, int height) { int orientation = -1; if(width < height){ orientation = 0; setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);} else{ orientation = 1; setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);} } }); } catch (IllegalArgumentException e) { e.printStackTrace(); } catch (SecurityException e) { e.printStackTrace(); } catch (IllegalStateException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } 
Intereting Posts
Если отмечена кнопка переключения или нет Как ускорить работу Android Studio на Mac Неопределенная ссылка glBindVertexArrayOES в eclipse Как интегрировать Linphone в существующий Android-проект Как обрабатывать AsyncTask в ActionBarActivity Fragments при использовании ViewPager? Каков наилучший способ хранения и доступа к XML в Android? Как разделить левое и правое изображение камеры (HTC Evo 3D) в данных предварительного просмотра камеры Добавить горизонтальное и вертикальное отображение в LinearLayout динамически Текущее время ожидания магазина приложений Android amazon? Резервное копирование и восстановление виджетов на главном экране и живые обои Как установить голографическую темную тему в приложении для Android? Можно отображать миниатюру видео с URL-адреса на Android 4 и выше? Правильная конвертация камеры2 YUV_420_888 в JPEG Apache Commons Codec с Android: не удалось найти метод Использование атрибута размера HTML в TextView