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
- Buffer de vídeo circular Android con sonido
- Android MediaCodec decodificar marco h264 crudo
- Cambiar el tamaño de la vista de la superficie para el cambio de la relación de aspecto en la visualización de vídeo en android
- CameraToMpegTest.java no funciona, termina con IllegalStateException: No se puede detener debido a un estado incorrecto
- Error de MediaMuxer "Error al detener el muxer"
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());
- El video de la API de MediaCodec de Android se reproduce demasiado rápido
- Android MediaExtractor y la corriente mp3
- ¿Podemos volver a escribir la API de MediaCodec en C?
- Error en el codificador OMX.qcom aleatorio
- Cómo comprimir mp4 video con MediaCodec Android?
- MediaCodec createInputSurface
- Cómo grabar la pantalla de actividad de la webview con Android MediaCodec?
- Android Camera onPreviewFrame frame rate no es coherente
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());
- Utilizar MediaCodec para H264 streaming
- ¿Puede una aplicación Android controlar otra aplicación a través de UI Automator?