Android 2.2 VideoView problema

Quiero reproducir una película de mi tarjeta sd. He intentado usar el código siguiente:

VideoView videoView = (VideoView) findViewById(R.id.videoView); final String MEDIA_PATH = new String("/sdcard/robot.avi"); MediaController mediaController = new MediaController(this); mediaController.setAnchorView(videoView); videoView.setVideoPath(MEDIA_PATH); videoView.setMediaController(mediaController); videoView.start(); 

Pero cuando estoy intentando jugar el archivo consigo un mensaje de error. "Video no encontrado" o algo similar. Cuando traté de streaming desde la web, el video funcionó, pero fue muy laggy. ¿Cuál es la mejor manera de reproducir vídeos en mi aplicación?

Gracias

Prueba esto…

 VideoView videoView = (VideoView) findViewById(R.id.videoView); final String MEDIA_PATH = new String(Environment.getExternalStorageDirectory()+"/sdcard/robot.avi"); MediaController mediaController = new MediaController(this); mediaController.setAnchorView(videoView); videoView.setVideoPath(MEDIA_PATH); videoView.setMediaController(mediaController); videoView.start(); 

Se observa que setVideoPath() falla, mientras que setVideoURI() funciona bien tanto para Web como Local así que insisto en que utilice esto.

  VideoView videoView = (VideoView) findViewById(R.id.videoView); final String MEDIA_PATH = new String("file:///sdcard/robot.avi"); MediaController mediaController = new MediaController(this); mediaController.setAnchorView(videoView); videoView.setVideoURI(MEDIA_PATH); videoView.setMediaController(mediaController); videoView.start(); 

Utilice este código. Espero que funcione

 public class VideoPlayActivity extends Activity { private VideoView video; private MediaController ctlr; @Override public void onCreate(Bundle icicle) { super.onCreate(icicle); getWindow().setFormat(PixelFormat.TRANSLUCENT); setContentView(R.layout.main); File clip=new File(Environment.getExternalStorageDirectory(), "haha.mp4"); if (clip.exists()) { video=(VideoView)findViewById(R.id.video); video.setVideoPath(clip.getAbsolutePath()); ctlr=new MediaController(this); ctlr.setMediaPlayer(video); video.setMediaController(ctlr); video.requestFocus(); video.start(); } } } 

Intentar con

 video_view.setVideoURI(Uri.parse(path)); 

No puede pasar directamente como una ruta de cadena si está intentando establecerlo como un uri. El código que funciona bien para mí:

  path = Environment.getExternalStorageDirectory() + "/file_name"; // Add controls to a MediaPlayer like play, pause. MediaController mc = new MediaController(this); video_view.setMediaController(mc); // Set the path of Video or URI. video_view.setVideoURI(Uri.parse(path)); // Set the focus. video_view.requestFocus(); video_view.start(); 

Su problema es que la ruta de vídeo no está configurada de la manera correcta:

Basta con cambiar a este código:

 final String MEDIA_PATH = Environment.getExternalStorageDirectory().getAbsolutePath() + "/robot.avi"; 

Que resolverá su problema si el video "robot.avi" existe en la carpeta raíz de la tarjeta sd

Estás reproduciendo tu video en tu propio VideoView , pero si no tienes nada que personalizar y solo quieres mostrar el video en la pantalla, ¿por qué no usas el reproductor predeterminado para reproducir el video.

 File imgFile = new File(Environment.getExternalStorageDirectory()+"FileName"); //make sure the video is in SDCard, //if its located in any folder care to pass full absolute path Intent tostart = new Intent(Intent.ACTION_VIEW); tostart.setDataAndType(Uri.parse(imgFile.getPath()), "video/*"); startActivity(tostart); 

Puede ser avi no soporta en android.convert en mp4 o wmv o 3gp. Prueba este código

 public class VideoPlayActivity extends Activity { private VideoView video; private MediaController ctlr; @Override public void onCreate(Bundle icicle) { super.onCreate(icicle); getWindow().setFormat(PixelFormat.TRANSLUCENT); setContentView(R.layout.main); File clip=new File(Environment.getExternalStorageDirectory(), "robot.mp4"); if (clip.exists()) { video=(VideoView)findViewById(R.id.video); video.setVideoPath(clip.getAbsolutePath()); ctlr=new MediaController(this); ctlr.setMediaPlayer(video); video.setMediaController(ctlr); video.requestFocus(); video.start(); } } } 
  • Cómo puedo reproducir video desde byte en android
  • Cómo reproducir varios vídeos en diferentes vistas de vídeo en una actividad
  • Cómo cerrar Landscape VideoView Activity correctamente?
  • Android carga la animación antes de iniciar VideoView
  • Problema con la vista de vídeo en android 4.0 y superior
  • ¿Por qué mi aplicación Android dice "No se puede reproducir el vídeo" después de la reproducción?
  • Cómo crear círculo o videoView redondo en android?
  • Reanudar la reproducción de VideoView desde onResume
  • VideoView en bucle de videos Replenish
  • Ocultar el botón de pausa de reproducción del controlador de medios en android
  • VideoView: Evitar el flash negro de pantalla completa
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.