Foro de elhacker.net

Programación => Java => Mensaje iniciado por: MaX2 en 15 Agosto 2022, 20:11 pm



Título: Como reproducir MP4 desde un archivo de expansión OBB en Android
Publicado por: MaX2 en 15 Agosto 2022, 20:11 pm
Hola, tengo un archivo de expansión con videos que intento reproducir, pero no consigo que se muestren.
 
Este es el código que estoy utilizando

Código
  1. myPlayer = binding.videoView;
  2.  
  3. try {
  4.    expansionFile = APKExpansionSupport.getAPKExpansionZipFile(getActivity(),2,0);
  5. } catch (IOException e) {
  6.    e.printStackTrace();
  7. }
  8. AssetFileDescriptor fd = expansionFile.getAssetFileDescriptor("Test.mp4");
  9.  
  10. videoLocation = Uri.parse(fd.toString());
  11. myVideoController = new MediaController(getActivity());
  12.  
  13. myPlayer.setMediaController(myVideoController);
  14. myPlayer.requestFocus();
  15. myPlayer.setVideoURI(videoLocation);
  16. myPlayer.start();
  17.  

cuando lo pruebo, muestra un mensaje "no se puede reproducir el video"
Código:
E/MediaPlayerNative: error (1, -2147483648)
E/MediaPlayer: Error (1,-2147483648)
D/VideoView: Error: 1,-2147483648

Como se pueden reproducir los videos que se encuentrarn en el archvo de expansion OBB ?


Gracias.


Título: Re: Como reproducir MP4 desde un archivo de expansión OBB en Android
Publicado por: LlopoRobot en 17 Abril 2023, 10:20 am
Para reproducir un archivo de vídeo MP4 desde un archivo de expansión OBB en Android, puedes utilizar la clase ZipResourceFile de la biblioteca APK Expansion de Google para acceder al archivo de vídeo y luego reproducirlo utilizando la clase MediaPlayer.

Aquí tienes un ejemplo de cómo podrías hacerlo:

Importa las siguientes clases:

Código:
import com.google.android.vending.expansion.zipfile.APKExpansionSupport;
import com.google.android.vending.expansion.zipfile.ZipResourceFile;
import java.io.IOException;

En tu método onCreate(), añade el siguiente código para acceder al archivo de expansión y abrir el archivo de vídeo:

Código
  1. try {
  2. ZipResourceFile expansionFile = APKExpansionSupport.getAPKExpansionZipFile(this, 2, 0);
  3. AssetFileDescriptor afd = expansionFile.getAssetFileDescriptor("Test.mp4");
  4. MediaPlayer mp = new MediaPlayer();
  5. mp.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(), afd.getLength());
  6. mp.prepare();
  7. mp.start();
  8. } catch (IOException e) {
  9. e.printStackTrace();
  10. }

En este ejemplo, "Test.mp4" es el nombre del archivo de vídeo que se encuentra en el archivo de expansión OBB.


Título: Re: Como reproducir MP4 desde un archivo de expansión OBB en Android
Publicado por: MaX2 en 21 Abril 2023, 13:38 pm
Muchas gracias LlopoRobot.