2016-08-01 17 views
0
gespielt werden kann

Ich versuche, aus dem Spiel Video im Internet mit Videoview:überprüfen Sie, ob resourse für Videoview aus dem Internet

String path1="http://someserverhere.com 
Uri uri=Uri.parse(path1); 
VideoView video=(VideoView)findViewById(R.id.VideoView01); 
video.setVideoURI(uri); 
video.start(); 

Wie kann ich das Video resourse weiß gespielt werden kann (Ausnahme behandeln), so weit habe ich versucht:

try { 
     MediaPlayer mp = new MediaPlayer(); 
     mp.setDataSource(this, uri); 
     mp.release(); 
    } 
    catch (Exceptione) { 

    } 

Aber dieser Code - Mediaplayer hängen meinen Bildschirm. Irgendwelche Vorschläge zu diesem Thema? Danke vielmals.

+0

haben Sie meine Antwort gesehen? –

Antwort

0

Vielleicht können Sie überprüfen, ob die Datei mit Kopf Anfrage vorhanden ist

import java.net.*; 
import java.io.*; 

public static boolean isFileExist(String URLName){ 
    try { 
     HttpURLConnection.setFollowRedirects(false); 
     //you may also need HttpURLConnection.setInstanceFollowRedirects(false) 
     HttpURLConnection con = 
       (HttpURLConnection) new URL(URLName).openConnection(); 
     con.setRequestMethod("HEAD"); 
     return (con.getResponseCode() == HttpURLConnection.HTTP_OK); 
    } 
    catch (Exception e) { 
     e.printStackTrace(); 
     return false; 
    } 
} 
+0

Wissen Sie, ob die Datei eine Videodatei ist? – user3693265

+0

Soweit ich weiß kann man nicht. Btw können Sie von der Erweiterung der Datei aus der URL überprüfen, obwohl es nicht korrekt ist. Oder Sie können onErrorListener auf MediaPlayer einstellen, so dass ein Fehler auftritt, wenn das Video nicht geladen werden kann – HendraWD

0

Sie es, indem Sie folgenden Code durch Prüfen der Breite und Höhe des Videos überprüfen.

MediaMetadataRetriever mRetriever = new MediaMetadataRetriever(); 
mRetriever.setDataSource(context, uri); 
Bitmap frame = mRetriever.getFrameAtTime(); 

int width = frame.getWidth(); 
int height = frame.getHeight(); 
0

Video vom Web abspielen Voller Code.

Hinweis: Internet-Berechtigung in Manifest hinzufügen.

<uses-permission android:name="android.permission.INTERNET" />

public class MainActivity extends Activity { 

    ProgressDialog pDialog; 
    VideoView videoview; 

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


     String VideoURL = "http://clips.vorwaerts-gmbh.de/VfE_html5.mp4"; 
     videoview = (VideoView) findViewById(R.id.videoView); 

     pDialog = new ProgressDialog(this); 
     pDialog.setTitle("Android Video Streaming Demo"); 
     pDialog.setMessage("Buffering..."); 
     pDialog.setIndeterminate(false); 
     pDialog.setCancelable(false); 
     pDialog.show(); 

     try { 
      // Start the MediaController 
      MediaController mediacontroller = new MediaController(this); 
      mediacontroller.setAnchorView(videoview); 
      // Get the URL from String VideoURL 
      Uri video = Uri.parse(VideoURL); 
      videoview.setMediaController(mediacontroller); 
      videoview.setVideoURI(video); 

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

     videoview.requestFocus(); 
     videoview.setOnPreparedListener(new MediaPlayer.OnPreparedListener() { 
      // Close the progress bar and play the video 
      public void onPrepared(MediaPlayer mp) { 
       pDialog.dismiss(); 
       videoview.start(); 
      } 
     }); 
    } 
}