MediaExtractor, MediaMetadataRetriever con archivo Raw / Asset

Trato de leer un archivo de vídeo dentro de la carpeta raw / assets, he intentado los siguientes enfoques, pero ninguno de ellos funciona. Estoy probando en la API 16. Cada enfoque, intento con y sin extensión mp4. Realmente aprecio que alguien pueda ayudarme con eso

Todos los enfoques no se bloquean, MediaMetadataRetriever puede establecer el origen de datos, pero no puede obtener el ancho, la altura y la captura de pantalla. VideoExtractor siempre devuelve

 06-04 16:44:10.519: E/FileSource(8695): Failed to open file FILE_PATH. (No such file or directory) 06-04 16:44:10.519: E/DecodeActivity(8695): Can't find video info! 

Enfoque 1: android.resource

 String filePath = "android.resource://" + this.activity.getPackageName() + "/raw/green_backhand_slice"; videoExtractor.setDataSource(activity.getApplicationContext(), Uri.parse(filePath), null); metaRetriever.setDataSource(act.getApplication(), Uri.parse(filePath)); 

Enfoque 2: android_asset

 this.filePath = "file:///android_asset/green_backhand_slice"; videoExtractor.setDataSource(activity.getApplicationContext(), Uri.parse(this.filePath), null); metaRetriever.setDataSource(act.getApplication(), Uri.parse(filePath)); 

Enfoque 3: descriptor de archivo de activos

 AssetFileDescriptor assetFD = null; try { assetFD = getAssets().openFd("green_backhand_slice.mp4"); } catch (IOException e) { e.printStackTrace(); } metaRetriever.setDataSource(assetFD.getFileDescriptor()); 

Aquí hay algunas maneras de hacerlo:

1.raw:

 final AssetFileDescriptor afd=getResources().openRawResourceFd(R.raw.t); mediaMetadataRetriever.setDataSource(afd.getFileDescriptor(),afd.getStartOffset(),afd.getLength()); 

2.raw como uri:

 final String uriPath="android.resource://"+getPackageName()+"/raw/t"; final Uri uri=Uri.parse(uriPath); mediaMetadataRetriever.setDataSource(getApplication(),uri); 

3.assets:

 final AssetFileDescriptor afd=getAssets().openFd("t.mp4"); mediaMetadataRetriever.setDataSource(afd.getFileDescriptor(),afd.getStartOffset(),afd.getLength()); 
  • Desbordamiento de tabla de referencia global débil de MediaCodec
  • Codificación de vídeo en Android mediante cv :: Mat y MediaCodec
  • Conseguir que los codificadores QualComm funcionen a través de la API de MediaCodec
  • Utilice MediaCodec y MediaExtractor para decodificar y codificar vídeo
  • MediaExtractor.setDataSource lanza IOException "no se pudo instanciar el extractor"
  • Android: reproducir muchos videos simultáneamente
  • Muxing audio AAC con MediaCodec de Android y MediaMuxer
  • Imágenes a Video usando MediaCodec y MediaMuxer
  • ¿Cuáles son los requisitos oficiales para que MediaMuxer pueda fusionar videos
  • MediaCodec KEY_FRAME_RATE parece ser ignorado
  • Excepción de estado ilegal al llamar a MediaCodec.configure ()
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.