2011-05-18 16 views
13

Me colocan el video MP4 en el espacio de mi dominio. Tengo su URL pública, ahora quiero jugar en mi aplicación de Android; pero no sé cómo puedo hacer esto. Usé el siguiente código que no funciona. El controlador de pista se está moviendo pero no puedo ver ningún video en la pantalla.¿Cómo reproducir un archivo de video en Android?

public class MPlayer extends Activity{ 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.playvideo); 
    VideoView videoView = new VideoView(MPlayer.this); 
    videoView.setMediaController(new MediaController(this)); 
    videoView.setVideoURI(Uri.parse("http://www.semanticdevlab.com/abc.mp4")); 
    videoView.requestFocus(); 
    videoView.start(); 
    LinearLayout l = (LinearLayout)findViewById(R.id.mplayer); 
    l.addView(videoView); 
} 
} 
+2

Su archivo puede no ser compatible con los decodificadores bastante limitados de Android. Cópielo en la tarjeta SD e intente reproducirlo localmente con la aplicación de video integrada. Obtener audio pero no video es un síntoma común de eso. Si eso no funciona, es probable que su programa no pueda transmitirlo, a menos que use decodificación de software (que probablemente no sea satisfactoria en la mayoría de los dispositivos) –

+0

consulte este enlace para descargarlo y reproducirlo [aquí] (https : //stackoverflow.com/a/44018621/6018083)! –

Respuesta

7

mayoría de las veces, estoy usando el código siguiente:

MediaPlayer mp = new MediaPlayer(); 
    mp.setDataSource(PATH_TO_FILE); 
    mp.prepare(); 
    mp.start(); 

para más información miro a esta página: http://developer.android.com/guide/topics/media/index.html y http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/media/MediaPlayerDemo_Video.html

+0

Probé este. Pero obtuvo errores: AudioTrack ObtainBuffer agotó el tiempo de espera Escritura de Flinger de audio bloqueada durante 70 segundos – zeeshan

3

Si está intentando esto en su emulador, puede que tengas que probarlo en un dispositivo real, porque a veces yo también uso el mismo problema. No podré ver el video en emulador, pero el video se reproducirá sin problemas en el móvil. el problema es que, creo, con el emulador, no con tu código.

+1

Ok, está funcionando en el dispositivo. Gracias – zeeshan

6

Creo que esto puede ayudarlo a encontrar alguna solución.

mp=new MediaPlayer();      
mp.setDataSource(path); 
mp.setScreenOnWhilePlaying(true); 
mp.setDisplay(holder); 
mp.prepare(); 
mp.start(); 
13

La clase VideoView puede cargar imágenes de varias fuentes (como los recursos o los proveedores de contenido), se encarga de calcular su medición del video para que pueda ser utilizado en cualquier controlador de distribución, y proporciona varias opciones de visualización como escalar y teñir.

Código:

videoView = (VideoView)findViewById(R.id.ViewVideo); 
videoView.setVideoURI(Uri.parse(“android.resource://” + getPackageName() +”/”+R.raw.video)); 
videoView.setMediaController(new MediaController(this)); 
videoView.requestFocus(); 
videoView.start(); 

si desea ver el código fuente: Play video file using VideoView in Android

+3

en este momento estoy escribiendo este comentario, el enlace provisto aquí no está funcionando ... Esto habría ayudado en mi investigación ... – Jay

+0

Para una URL pública utilicé 'videoView.setVideoPath (ruta);' en su lugar. –

0

debe hacerlo en onResume, porque en onCreateVideoView no sabe su tamaño y no se puede crear una superficie adecuada para mostrar video.

public class MPlayer extends Activity{ 

VideoView videoView; 

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.playvideo); 
    videoView = new VideoView(MPlayer.this); 
    videoView.setMediaController(new MediaController(this)); 
    LinearLayout l = (LinearLayout)findViewById(R.id.mplayer); 
    l.addView(videoView); 
    } 

    @Override 
    protected void onResume() { 
     super.onResume(); 
videoView.setVideoURI(Uri.parse("http://www.semanticdevlab.com/abc.mp4")); 
     videoView.start(); 
} 
Cuestiones relacionadas