我正在开发一个必须使用Android视频播放器的应用程序。我给这个播放器一个URI,有时运行,有些时间不运行。根据定义的过程在运行时生成URI。
当视频无法播放时,我在logcat中收到以下错误。
03-30 12:58:42.918: D/MediaPlayer(4948): Couldn't open file on client side, trying server side
03-30 12:58:43.516: E/MediaPlayer(4948): error (1, -1004)
03-30 12:58:43.516: E/MediaPlayer(4948): Error (1,-1004)
03-30 12:58:43.520: D/VideoView(4948): Error: 1,-1004
我无法理解这个错误。如果有人能向我解释这个问题。这是我的(VideoPlayer)端或服务器端的问题.. ???
我用于视频播放器的代码如下:
String url = getIntent().getExtras().getString("videourl");
VideoView videoView = (VideoView) findViewById(R.id.videoview);
MediaController mediaController = new MediaController(this);
mediaController.setAnchorView(videoView);
Uri video = Uri.parse(url);
videoView.setMediaController(mediaController);
videoView.setVideoURI(video);
videoView.start();
更重要的是,当没有播放视频时,我会看到一个错误对话框,显示:
“对不起!此视频无法播放。”带有“确定”按钮。当我按下按钮时,视图不会弹回我应用程序的上一个窗口,而是保留在VideoPlayer屏幕上,我必须按两次后退按钮才能返回上一个视图。为什么会这样.. ???任何对解释问题的帮助都非常感激。
答案 0 :(得分:4)
表单日志-1004表示: public static final int MEDIA_ERROR_IO
对我来说,这总是有效:
Uri video = Uri.parse(url);
mediaController = new MediaController(this);
mediaController.setAnchorView(videoView);
videoView.requestFocus();
videoView.setMediaController(mediaController);
videoView.setVideoURI(video);
videoView.setOnPreparedListener(new OnPreparedListener()
{
@Override
public void onPrepared(MediaPlayer arg0)
{
videoView.start();
}
});