2017-07-14 9 views
0

Wie kann ich Video in Android durch die Weitergabe von Video-Link (zum Beispiel - "https://youtu.be/SiD77g9KfhA" oder es kann ein anderer Video-Link von einem anderen Medien-Portal sein). Ich habe versucht, dies zu tun, aber ich bekomme einen Fehler.Wie Video in Android von Video-Link zu spielen

Mein Code

try { 
       if (!mVideoView.isPlaying()) { 
        Uri uri = Uri.parse(videoURL); 
        mVideoView.setVideoURI(uri); 
        mVideoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() { 
         @Override 
         public void onCompletion(MediaPlayer mp) { 

         } 
        }); 
       } else { 
        mVideoView.pause(); 
       } 
      }catch (Exception ex){ 

      } 
      mVideoView.requestFocus(); 
      mVideoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() { 
       @Override 
       public void onPrepared(MediaPlayer mp) { 
        mProgressDialog.dismiss(); 
        mp.setLooping(true); 
        mVideoView.start(); 
       } 
      }); 

Fehler.

enter image description here

+2

sollten Sie direkten Link auf Video festgelegt (nicht mit Video für Seite verlinkt) – DeKaNszn

+1

Sie shold die Stacktrace bietet, nicht einen Screenshot davon. – JFPicard

+0

@DeKaNszn Link, den ich hinzugefügt habe, ist kein direkter Link zu Video? – Vaniusha

Antwort

0

, was Sie gegeben haben, ist Seiten-URL nicht die Video-URL dieses war mir diese URL versuchen.

http://tamilhd.in/load/Tamil%20Movies%20Trailers/2017%20Tamil%20Movies%20Trailers/Baahubali%202%20Trailer/320x240/Baahubali%202%20Trailer.mp4

+0

Ja, jetzt funktioniert es. Aber wie kann ich direkten Link wie diesen bekommen, zum Beispiel von welchem ​​Video in youtube? – Vaniusha

+0

keepvid.com hier können Sie direkte URLs bekommen. Sie können auch eine direkte URL abrufen, indem Sie Videos von mobilen Websites auf Ihrem Desktop oder Laptop herunterladen. Für youtube können Sie mit der rechten Maustaste auf das Video klicken und Video-URL kopieren auswählen. –

0

können Sie diesen Code versuchen snippet. Ich habe diesen Code in meiner App verwendet, um Videos im landscape-Modus abzuspielen.

package xyz.abc.package; 

import android.app.Activity; 
import android.app.ProgressDialog; 
import android.content.Intent; 
import android.content.pm.ActivityInfo; 
import android.media.MediaPlayer; 
import android.media.MediaPlayer.OnCompletionListener; 
import android.media.MediaPlayer.OnPreparedListener; 
import android.net.Uri; 
import android.os.Bundle; 
import android.util.Log; 
import android.view.Window; 
import android.view.WindowManager; 
import android.widget.MediaController; 
import android.widget.VideoView; 

public class FullVideo extends Activity { 

    ProgressDialog pDialog; 
    VideoView videoview; 
    private int position = 0; 
    String videoUrl, imageUrl, cid; 

    private MediaController mediaControls; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     requestWindowFeature(Window.FEATURE_NO_TITLE); 
     getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 
       WindowManager.LayoutParams.FLAG_FULLSCREEN); 
     setContentView(R.layout.full_video); 

     videoUrl = "https://youtu.be/SiD77g9KfhA" 

     if (mediaControls == null) { 
      mediaControls = new MediaController(FullVideo.this); 
     } 

     videoview = (VideoView) findViewById(R.id.videoView); 
     // Execute StreamVideo AsyncTask 

     // Create a progressbar 
     pDialog = new ProgressDialog(FullVideo.this); 
     // Set progressbar title 
     pDialog.setTitle("Streaming video, please wait."); 
     // Set progressbar message 
     pDialog.setMessage("Buffering..."); 
     pDialog.setIndeterminate(false); 
     pDialog.setCancelable(false); 
     // Show progressbar 
     pDialog.show(); 

     try { 

      mediaControls.setAnchorView(videoview); 
      // Get the URL from String VideoURL 
      Uri video = Uri.parse(videoUrl); 
      videoview.setMediaController(mediaControls); 
      // mediaControls.setMediaPlayer(videoview); 
      videoview.setVideoURI(video); 

     } catch (Exception e) { 
      Log.e("Error", e.getMessage()); 
      e.printStackTrace(); 
     } 

     videoview.setOnPreparedListener(new OnPreparedListener() { 
      // Close the progress bar and play the video 
      public void onPrepared(MediaPlayer mp) { 
       pDialog.dismiss(); 
       videoview.requestFocus(); 
       videoview.seekTo(position); 
       if (position == 0) { 
        videoview.start();     
       } else { 
        videoview.pause(); 
       } 
      } 
     }); 

     videoview.setOnCompletionListener(new OnCompletionListener() { 

      @Override 
      public void onCompletion(MediaPlayer mp) { 
       // TODO Auto-generated method stub 
       finish(); 

      } 
     }); 

    } 

    @Override 
    public void onBackPressed() { 
     // TODO Auto-generated method stub 
     super.onBackPressed(); 
      finish(); 

    } 

    @Override 
    protected void onStart() { 
     // TODO Auto-generated method stub 
     super.onStart(); 
     setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); 
    } 

    @Override 
    protected void onRestart() { 
     // TODO Auto-generated method stub 
     super.onRestart(); 
     setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); 
    } 

    @Override 
    protected void onSaveInstanceState(Bundle outState) { 
     // TODO Auto-generated method stub 
     super.onSaveInstanceState(outState); 
     outState.putInt("Position", videoview.getCurrentPosition()); 
     videoview.pause(); 

    } 

    @Override 
    protected void onRestoreInstanceState(Bundle savedInstanceState) { 
     // TODO Auto-generated method stub 
     super.onRestoreInstanceState(savedInstanceState); 
     position = savedInstanceState.getInt("Position"); 
     videoview.seekTo(position); 
    } 

} 
+0

Ich erhalte einen Fehler, wenn ich versuche, meine App mit Ihrem Code auszuführen – Vaniusha

Verwandte Themen