Reproducción de vídeo en pantalla completa

Estoy intentando reproducir un video en mi aplicación. Tiene que ser incrustado.

Pasé por el subproceso "Reproducir archivos de vídeo en Android" .

Puedo reproducir mi video usando VideoView como se menciona en esta discusión. Pero hay algunos problemas.

  1. Necesito video de pantalla completa, ¿cómo puedo estirar VideoView a pantalla completa? ¿Eso estirará el video también?

  2. No necesito los botones de reproducción / avance / parada predeterminados. Básicamente, necesito la reproducción en bucle continuo del video.

He intentado la clase MediaPlayer como aquí , pero nunca funcionó. ¿Qué aspecto debería tener el formato de cadena si tengo mi archivo de vídeo en el directorio res / raw? Realmente no quiero que el archivo de vídeo se reproduzca desde sdcard. ¿Cómo se puede empaquetar junto con la aplicación?

Si cualquiera de estos dos enfoques funciona, estaré mejor.

Este es mi código:

videoHolder = new VideoView(this); // videoHolder = (VideoView)findViewById(R.id.videoview); LayoutParams params = new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT); videoHolder.setLayoutParams(params); videoHolder.setMediaController(new MediaController(this)); setContentView(videoHolder); // // //// I tested and found that it works fine for .wmv, .3gp and .mp4 //// videoHolder.setVideoURI(Uri.parse("file:///sdcard/video.3gp")); videoHolder.setVideoURI(Uri.parse("res/raw/demo.3gp")); videoHolder.requestFocus(); videoHolder.start(); 

Curiosamente, la url comentada funciona (la que tiene sdcard). El otro no funciona. He intentado muchas combinaciones de "file: // res / raw / demo.3gp" a solo "demo".

¿Cuál sería la cadena correcta para acceder al archivo?

No es necesario hacer ninguna codificación para reproducir vídeo a modo de pantalla completa

Aplicar el siguiente formato de diseño en el xml que contiene el videoview que seguramente se reproducirá el video en modo de pantalla completa. Como se está ejecutando el mío. 🙂 Espero eso ayude

  <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" > <VideoView android:id="@+id/myvideoview" android:layout_width="fill_parent" android:layout_alignParentRight="true" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:layout_alignParentBottom="true" android:layout_height="fill_parent"> </VideoView> </RelativeLayout> 

Además de añadir el mediacontroller también le dará el controlador para su uso.

He resuelto el problema:

1. Para quitar los botones de continuación / pausa, retire el controlador de medios. Para el problema de bucle poner OnCompletionListener para que cuando el video llega al final, se inicia de nuevo:

 videoView.setOnCompletionListener( new MediaPlayer.OnCompletionListener() { public void onCompletion(MediaPlayer mp) { videoView.start(); } }); 

2. Para cambiar el tamaño del video, anule el método onMeasure() en VideoView siguiente manera:

 public class MyVideoView extends VideoView { public MyVideoView(Context context) { super(context); } @Override protected void onMeasure (int widthMeasureSpec, int heightMeasureSpec) { setMeasuredDimension(480,800); } } 

Sé que este hilo es un par de semanas, pero no tiene que copiar el archivo de vídeo a la tarjeta SD sólo para jugar. Utilice lo siguiente pero inserte el nombre del paquete en lugar de "com.suempresa.suproyecto":

videoView.setVideoURI(Uri.parse("android.resource://com.yourcompay.yourproject/" + R.raw.yourvideoresource));

Si quieres reproducir vídeo en pantalla completa, simplemente añade esta línea de código en tu archivo Androidmanifest.xml, en la actividad en la que se va a reproducir este video. Simplemente agregue estas dos líneas en el archivo de manifiesto android.

  android:theme="@android:style/Theme.NoTitleBar.Fullscreen" android:configChanges="orientation|screenSize" 

Al igual que en mi archivo androidmanifest.xml lo he añadido

  <activity android:name="com.appliconic.straminglivevideo.MainActivity" android:theme="@android:style/Theme.NoTitleBar.Fullscreen" android:configChanges="orientation|screenSize" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> 

Modificado respuesta @ Javanator un poco, esto no estirar el video:

 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" > <VideoView android:id="@+id/myvideoview" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_centerVertical="true" android:layout_centerHorizontal="true"> </VideoView> </RelativeLayout> 

Espero que esto ayude a alguien 🙂

Para reproducir video en bruto, debe copiarlo en Sdcard de la siguiente manera:

  File f=new File(Environment.getExternalStorageDirectory(), FICHIER_BLOW); try { if (f.exists()){ MyVideoView videoHolder = new MyVideoView(this); LayoutParams params = new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT); videoHolder.setLayoutParams(params); setContentView(videoHolder); video =Uri.fromFile(f); videoHolder.setVideoURI(video); videoHolder.start(); } else if (f.createNewFile()){ BufferedOutputStream bufEcrivain = new BufferedOutputStream((new FileOutputStream(f))); BufferedInputStream VideoReader = new BufferedInputStream(getResources().openRawResource(R.raw.blow)); byte[] buff = new byte[32 * 1024]; int len; while( (len = VideoReader.read(buff)) > 0 ){ bufEcrivain.write(buff,0,len); } bufEcrivain.flush(); bufEcrivain.close(); MyVideoView videoHolder = new MyVideoView(this); LayoutParams params = new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT); videoHolder.setLayoutParams(params); setContentView(videoHolder); video =Uri.fromFile(f); videoHolder.setVideoURI(video); videoHolder.start(); } else{ } } catch (IOException e) { e.printStackTrace(); } 
  • ¿Cómo puedo hacer que mis vídeos incrustados se reproduzcan en el Kindle Fire?
  • Cómo incluir funciones FFMPEG en el código android
  • ¿Cómo grabar vídeo con sonido específico mediante programación en android?
  • Android - Cómo iniciar la grabación de vídeo automáticamente cuando se llama a la cámara intención
  • Comprimir vídeo de Android antes de cargar en el servidor
  • Android: Quiero grabar una alimentación de vídeo de baja calidad y enviarla en paquetes discretos. ¿Es posible? ¿Cómo lo abordarías?
  • Los vídeos que no se reproducen en Android en un estado sin conexión cuando se usa appcache
  • Buscando retroalimentación técnica en Nextreaming NexPlayer ™
  • Programe para comprimir el video sin FFMPEG en Android
  • Actividad de código abierto de Android para que el usuario seleccione / cree un medio?
  • Utilice MediaCodec y MediaExtractor para decodificar y codificar vídeo
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.