Android 2.2 VideoView问题

Joh*_*han 11 android android-videoview

我想从我的SD卡上播放一部电影.我尝试使用以下代码:

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

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

MediaController mediaController = new MediaController(this);

mediaController.setAnchorView(videoView);

videoView.setVideoPath(MEDIA_PATH);

videoView.setMediaController(mediaController);

videoView.start();
Run Code Online (Sandbox Code Playgroud)

但是当我试图播放文件时,我收到一条错误消息."视频未找到"或类似的东西.当我尝试从网络流媒体时,视频工作但非常迟钝.什么是在我的应用程序中播放视频的最佳方式?

谢谢

Sha*_*wal 9

试试这个...

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();
Run Code Online (Sandbox Code Playgroud)


Moh*_*ikh 5

据观察setVideoPath()失败,虽然setVideoURI()适用于Web和Local,所以我坚持要使用它.

 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();
Run Code Online (Sandbox Code Playgroud)


MBM*_*BMJ 2

可能是android不支持avi。将其转换为mp4或wmv或3gp。试试这个代码

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();
}
}
}
Run Code Online (Sandbox Code Playgroud)