0

Ich versuche, YouTube-Video in Video-View Android zu spielen. Es kann dieses Video nicht abspielen. Was ich habe, ist versucht, wie unten ..Android VideoView YouTube Video - kann diesen Video-Fehler nicht wiedergeben

MainActivity.java

public class MainActivity extends AppCompatActivity { 

    // Widgets 
    private VideoView vv_youtube; 

    // Variables 
    private String base_url = "https://www.youtube.com/watch?v=K8lppDEOkcM"; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     vv_youtube = (VideoView) findViewById(R.id.vv_youtube); 

     Uri video = Uri.parse(base_url); 
     MediaController mediaController = new MediaController(this); 
     mediaController.setAnchorView(vv_youtube); 
     vv_youtube.requestFocus(); 
     vv_youtube.setMediaController(mediaController); 
     vv_youtube.setVideoURI(video); 

     vv_youtube.setOnPreparedListener(new MediaPlayer.OnPreparedListener() { 
      @Override 
      public void onPrepared(MediaPlayer arg0) { 
       vv_youtube.start(); 
      } 
     }); 

     vv_youtube.setOnErrorListener(new MediaPlayer.OnErrorListener() { 
      @Override 
      public boolean onError(MediaPlayer mp, int what, int extra) { 
       Log.e("Error is: ", String.valueOf(extra)); 
       return false; 
      } 
     }); 

     vv_youtube.setOnCompletionListener(new MediaPlayer.OnCompletionListener() { 
      @Override 
      public void onCompletion(MediaPlayer mp) { 
       Log.e("Complete is: ", mp.toString()); 
      } 
     }); 
    } 
} 

LogCat

11-19 02: 21: 45,741 21.929-21.961/com.example.inbridge08. videoviewyoutube I/OpenGLRenderer: Initialisierte EGL, Version 1.4 11-19 02: 21: 45,772 21929-21961/com.example.inbridge08.videoviewyoutube D/OpenGLRenderer: Aktivieren des Debug-Modus 0 11-19 02: 21: 45.799 21929-21961/com .example.inbridge08.videoviewyoutube W/EGL_emulation: eglSurfaceAttrib nicht implementiert 11-19 02:21: 45.799 21929-21961/com.example.inbridge08.videoviewyoutube W/OpenGLRenderer: Fehler beim Festlegen von EGL_SWAP_BEHAVIOR auf der Oberfläche 0xe2b19220, Fehler = EGL_SUCCESS 11-19 02: 21: 45.898 21929-21929/com.example.inbridge08.videoviewyoutube D/MediaPlayer: Die Datei konnte nicht auf der Clientseite geöffnet werden, indem Sie die Serverseite 11-19 versuchen 21929-21929/com.example.inbridge08.videoviewyoutube E/MediaPlayer: Fehler (1, -2147483648) 11-19 02: 21: 46.421 21929-21929/com.beispiel.inbridge08.videoviewyoutube D/VideoView: Fehler: 1, - 2147483648 Februar 11-19: 21: 46,421 21.929-21.929/com.example.inbridge08.videoviewyoutube E/Error ist :: -2147483648

[11-19 Februar: 21: 46,513 82: 82 D /] Sockel Entkoppelungsklausel

Ich habe zwei Tage lang auf Google gesucht und bin zu der Entscheidung gelangt, dass ich YouTube Android Player API verwenden muss, um YouTube-Videos in Video-View abzuspielen. Wenn ich URL durch andere (Nicht YouTube video URL) ersetze Es funktioniert gut.

Ich habe sowohl Emulator und Gerät versucht. Nicht an beiden arbeiten.

Vielen Dank im Voraus!

Antwort

0

Verwenden Sie die MediaPlayer class für die Wiedergabe von Videos in VideoView. Hier ist ein Ausschnitt genommen von MediaPlayer guide Mit Videos von URIs zu spielen:

Wiedergabe von einem Remote-URL via HTTP-Streaming sieht wie folgt aus:

String url = "http://........"; // your URL here 
MediaPlayer mediaPlayer = new MediaPlayer(); 
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC); 
mediaPlayer.setDataSource(url); 
mediaPlayer.prepare(); // might take long! (for buffering, etc) 
mediaPlayer.start(); 

Note: If you're passing a URL to stream an online media file, the file must be capable of progressive download.

Sie auch diese SO thread für zusätzliche Referenz überprüfen kann.

Verwandte Themen