2010-04-12 25 views
32

Soy un principiante en el desarrollo de Android y trato de 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.cómo reproducir video desde la url

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 mensaje de error siguiente:

04-12 15:04:54.245: ERROR/PlayerDriver(554): HandleErrorEvent: PVMFErrTimeout 
+0

Parece un problema con el formato para mí. Podría ayudar a ver el mensaje de error de la consola real con la pila de llamadas, ¿podría pegar la salida de logcat completa? –

+0

intente utilizar setVideoPath en su lugar –

Respuesta

6

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(); 
+4

este trabajo no apropiado – Android

39

Tiene algo que ver con su enlace y contenido Pruebe las 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(); 

comienzan con "rutaDeAcceso1", es un pequeño flujo de vídeo de peso ligero y luego probar el "camino", es una resolución mayor que "rutaDeAcceso1", una perfecta alta resolución para el teléfono móvil.

+4

esto no es trabajo – Android

+0

El segundo ha funcionado, pero el primero no. – Amt87

+0

muestra cant paly este video :( – Rojesh

28

¿Tiene los permisos añadidos para el acceso a Internet?

+1

Eso es lo que solucionó mi problema. Agregue permisos para internet y wala, funcionó – Shaun

+0

Esto ha solucionado mi problema. El problema fue que VideoView funcionó bien sin este permiso en un dispositivo anterior con fw 2.2. Pero en ICS requiere permiso para el acceso a internet. –

+0

Agrego la persistencia de Internet en Manifest nad funciona en 3G pero falla con WIFI Ivan

4
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();    
     } 
    }); 
4

Usted puede hacerlo usando FullscreenVideoView clase. Es un pequeño proyecto de biblioteca. Es de diálogo de progreso de vídeo está construido en su Gradle es:.

compile 'com.github.rtoshiro.fullscreenvideoview:fullscreenvideoview:1.1.0' 

su xml VideoView es así

<com.github.rtoshiro.view.video.FullscreenVideoLayout 
     android:id="@+id/videoview" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" /> 

En su actividad, inicializarlo utilizando de esta manera:

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 eso. Feliz de codificación :)

Si quieren saber más de visitar here

Editar: ruta Gradle se ha actualizado. compilarlo ahora

compile 'com.github.rtoshiro.fullscreenvideoview:fullscreenvideoview:1.1.2' 
+0

@Sajedul la biblioteca es buena, pero después de jugar por unos segundos se detendrá. MediaPlayer: el error (1, -1004) se imprimirá en logcat. ¿Por qué es así? Estoy intentando reproducir http://sharemyideo.esy.es/upload/videos/922a4a6a4e370acb94c84fe0039c66f2.mp4 este video. –

+0

agregaron una nueva versión en su canal estable. ¿Puede actualizar su ruta gradle compilar 'com.github.rtoshiro.fullscreenvideoview: pantalla completavideoview: 1.1.2' Espero que esto resuelva su problema –

+0

¿Esto es compatible con ** ** Youtube ** y ** Vimeo ** URLs? – Shihas

-1

Compruebe si su teléfono es compatible con el formato de vídeo o not.Even tuve el problema cuando se reproduce un archivo 3GP, pero jugado un archivo MP4 perfectamente.

1

También me he quedado 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. Así que, 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 
    }} 
Cuestiones relacionadas