android - ver - cómo reproducir video desde url
manual de programacion android pdf (8)
¿Tiene los permisos agregados para el acceso a internet?
Soy principiante en el desarrollo de Android e intento reproducir video desde el enlace. Pero está dando el error "sorry,we can''t play this video"
. Intenté tantos enlaces, pero para todos los enlaces, muestra el mismo error.
Mi código es el siguiente
public class VideoDemo extends Activity {
private static final String path ="http://demo.digi-corp.com/S2LWebservice/Resources/SampleVideo.mp4";
private VideoView video;
private MediaController ctlr;
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
getWindow().setFormat(PixelFormat.TRANSLUCENT);
setContentView(R.layout.videoview);
video = (VideoView) findViewById(R.id.video);
video.setVideoPath(path);
ctlr = new MediaController(this);
ctlr.setMediaPlayer(video);
video.setMediaController(ctlr);
video.requestFocus();
}
}
Logcat muestra el siguiente mensaje de error:
04-12 15:04:54.245: ERROR/PlayerDriver(554): HandleErrorEvent: PVMFErrTimeout
Comprueba si tu teléfono es compatible o no con el formato de video. Incluso tuve el problema al reproducir un archivo de 3gp pero reproducía perfectamente un archivo mp4.
Prueba esto:
String LINK = "type_here_the_link";
setContentView(R.layout.mediaplayer);
VideoView videoView = (VideoView) findViewById(R.id.video);
MediaController mc = new MediaController(this);
mc.setAnchorView(videoView);
mc.setMediaPlayer(videoView);
Uri video = Uri.parse(LINK);
videoView.setMediaController(mc);
videoView.setVideoURI(video);
videoView.start();
Puedes hacerlo usando la clase FullscreenVideoView
. Es un pequeño proyecto de biblioteca. Su diálogo de progreso de video está incorporado. Es gradle es:
compile ''com.github.rtoshiro.fullscreenvideoview:fullscreenvideoview:1.1.0''
su VideoView xml es así
<com.github.rtoshiro.view.video.FullscreenVideoLayout
android:id="@+id/videoview"
android:layout_width="match_parent"
android:layout_height="match_parent" />
En tu actividad, inicialízalo usando esta forma:
FullscreenVideoLayout videoLayout;
videoLayout = (FullscreenVideoLayout) findViewById(R.id.videoview);
videoLayout.setActivity(this);
Uri videoUri = Uri.parse("YOUR_VIDEO_URL");
try {
videoLayout.setVideoURI(videoUri);
} catch (IOException e) {
e.printStackTrace();
}
Eso es. Feliz codificación :)
Si quieres saber más, visita here
Editar: la ruta gradle se ha actualizado. compilarlo ahora
compile ''com.github.rtoshiro.fullscreenvideoview:fullscreenvideoview:1.1.2''
También me quedé atascado con este problema. Recibí la respuesta correcta del servidor, pero no pude reproducir el video. Después de mucho tiempo encontré una solución here . Tal vez, en el futuro, este enlace no sea válido. Entonces, aquí está mi código correcto
Uri video = Uri.parse("Your link should be in this place ");
mVideoView.setVideoURI(video);
mVideoView.setZOrderOnTop(true); //Very important line, add it to Your code
mVideoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mediaPlayer) {
// here write another part of code, which provides starting the video
}}
Tiene algo que ver con tu enlace y contenido. Pruebe los siguientes dos enlaces:
String path="http://www.ted.com/talks/download/video/8584/talk/761";
String path1="http://commonsware.com/misc/test2.3gp";
Uri uri=Uri.parse(path1);
VideoView video=(VideoView)findViewById(R.id.VideoView01);
video.setVideoURI(uri);
video.start();
Comience con "path1", es una transmisión de video pequeña y liviana y luego pruebe la "ruta", es una resolución más alta que "path1", una alta resolución perfecta para el teléfono móvil.
por favor, consulte este enlace: http://developer.android.com/guide/appendix/media-formats.html
videoview no admite algunos códecs .
Le sugerí que use mediaplayer, cuando "lo siento, no puedo reproducir el video"
pDialog = new ProgressDialog(this);
// Set progressbar message
pDialog.setMessage("Buffering...");
pDialog.setIndeterminate(false);
pDialog.setCancelable(false);
// Show progressbar
pDialog.show();
try {
// Start the MediaController
MediaController mediacontroller = new MediaController(this);
mediacontroller.setAnchorView(mVideoView);
Uri videoUri = Uri.parse(videoUrl);
mVideoView.setMediaController(mediacontroller);
mVideoView.setVideoURI(videoUri);
} catch (Exception e) {
e.printStackTrace();
}
mVideoView.requestFocus();
mVideoView.setOnPreparedListener(new OnPreparedListener() {
// Close the progress bar and play the video
public void onPrepared(MediaPlayer mp) {
pDialog.dismiss();
mVideoView.start();
}
});
mVideoView.setOnCompletionListener(new OnCompletionListener() {
public void onCompletion(MediaPlayer mp) {
if (pDialog.isShowing()) {
pDialog.dismiss();
}
finish();
}
});