2011-01-03 16 views
11

Ich möchte einen Film von meiner SD-Karte abspielen. Ich habe versucht, mit dem folgenden Code:Android 2.2 VideoView Problem

Aber wenn ich versuche, die Datei zu spielen, bekomme ich eine Fehlermeldung. "Video nicht gefunden" oder etwas Ähnliches. Als ich versuchte, aus dem Internet zu streamen, funktionierte das Video, war aber sehr lückig. Was ist der beste Weg, um Videos in meiner App abzuspielen?

Dank

Antwort

2

Kann sein, avi nicht in android.convert es in mp4 oder wmv oder 3gp unterstützt. versuchen diesen Code

public class VideoPlayActivity extends Activity { 
private VideoView video; 
private MediaController ctlr; 

@Override 
public void onCreate(Bundle icicle) { 
super.onCreate(icicle); 
getWindow().setFormat(PixelFormat.TRANSLUCENT); 
setContentView(R.layout.main); 

File clip=new File(Environment.getExternalStorageDirectory(), 
        "robot.mp4"); 

if (clip.exists()) { 
    video=(VideoView)findViewById(R.id.video); 
    video.setVideoPath(clip.getAbsolutePath()); 

    ctlr=new MediaController(this); 
    ctlr.setMediaPlayer(video); 
    video.setMediaController(ctlr); 
    video.requestFocus(); 
    video.start(); 
} 
} 
} 
+0

zwei Antworten für eine Frage. sollte es nur aktualisieren – Ishu

3

verwenden code.Hope wird es funktionieren

public class VideoPlayActivity extends Activity { 
private VideoView video; 
private MediaController ctlr; 

@Override 
public void onCreate(Bundle icicle) { 
super.onCreate(icicle); 
getWindow().setFormat(PixelFormat.TRANSLUCENT); 
setContentView(R.layout.main); 

File clip=new File(Environment.getExternalStorageDirectory(), 
       "haha.mp4"); 


if (clip.exists()) { 
video=(VideoView)findViewById(R.id.video); 
video.setVideoPath(clip.getAbsolutePath()); 

ctlr=new MediaController(this); 
ctlr.setMediaPlayer(video); 
video.setMediaController(ctlr); 
video.requestFocus(); 
video.start(); 
} 
} 
} 
2

Sie spielen Ihre Video in Ihrem eigenen VideoView, Aber wenn man nichts anpassen und wollen nur das zeigen, Video auf dem Bildschirm, warum verwenden Sie nicht den Standard-Player, um das Video abzuspielen.

File imgFile = new File(Environment.getExternalStorageDirectory()+"FileName"); 
//make sure the video is in SDCard, 
//if its located in any folder care to pass full absolute path 
Intent tostart = new Intent(Intent.ACTION_VIEW); 
tostart.setDataAndType(Uri.parse(imgFile.getPath()), "video/*"); 
startActivity(tostart); 
5

Es wird beobachtet, dass setVideoPath() ausfällt, während setVideoURI() sowohl für gut Web und Local arbeitet so bestehe ich Sie, diese zu verwenden.

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

    final String MEDIA_PATH = new String("file:///sdcard/robot.avi"); 

    MediaController mediaController = new MediaController(this); 

    mediaController.setAnchorView(videoView); 

    videoView.setVideoURI(MEDIA_PATH); 

    videoView.setMediaController(mediaController); 

    videoView.start(); 
9

Try this ...

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

final String MEDIA_PATH = new String(Environment.getExternalStorageDirectory()+"/sdcard/robot.avi"); 

MediaController mediaController = new MediaController(this); 

mediaController.setAnchorView(videoView); 

videoView.setVideoPath(MEDIA_PATH); 

videoView.setMediaController(mediaController); 

videoView.start(); 
3

Versuchen mit

video_view.setVideoURI(Uri.parse(path)); 

Sie nicht direkt als String Weg passieren kann, wenn man als uri zu setzen versuchen. Der Code, der für mich funktioniert gut:

path = Environment.getExternalStorageDirectory() + "/file_name"; 

    // Add controls to a MediaPlayer like play, pause. 
    MediaController mc = new MediaController(this); 
    video_view.setMediaController(mc); 

    // Set the path of Video or URI. 
    video_view.setVideoURI(Uri.parse(path)); 

    // Set the focus. 
    video_view.requestFocus(); 

    video_view.start(); 
3

Ihr Problem ist, dass der Video-Pfad, den richtigen Weg nicht gesetzt:

nur auf diesen Code wechseln:

final String MEDIA_PATH = Environment.getExternalStorageDirectory().getAbsolutePath() + "/robot.avi"; 

, die lösen Ihr Problem, wenn das Video "robot.avi" im Stammverzeichnis der SD-Karte existiert