为什么?我无法使用Intent播放下载的mp4视频文件

时间:2014-05-15 08:17:02

标签: android android-video-player video-player

我必须开发一个应用程序,我从URL下载视频文件 下载后,我正在通过Intent进行播放。

但每次我收到相同的消息:"您无法播放此视频。"

下载代码:

protected String doInBackground(String... params) {

    File file = new File(getFilesDir(), generateFileName(params[0]));
        try {
            URL u = new URL(params[0]);
            URLConnection conn = u.openConnection();
            int contentLength = conn.getContentLength();

            DataInputStream stream = new DataInputStream(u.openStream());

            byte[] buffer = new byte[contentLength];
            stream.readFully(buffer);
            stream.close();

            DataOutputStream fos = new DataOutputStream(new FileOutputStream(file));
            fos.write(buffer);
            fos.flush();
            fos.close();

        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

        return null;
 }

播放视频的方法:

public void playVideo(String fileName) {

       Uri data = Uri.parse(new File(fileName).getAbsolutePath());
       Log.i("DATA: ",""+data);

       Intent intent = new Intent();
       intent.setAction(android.content.Intent.ACTION_VIEW);
       intent.setDataAndType(data, "video/mp4");
       startActivity(intent); 
}

1 个答案:

答案 0 :(得分:0)

在为意图提供额外信息时,此代码对我有用。这不是视频数据,而是图像数据,但我相信这个概念应该是一样的(我可能错了,因为我没有尝试过这个视频)。

File file = new File(getExternalFilesDir(null), "image.png");
String uriPath = "file://"+file.getPath(); 
shareIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse(uriPath));

请注意,我提供给intent的图像当然是在此之前下载的,然后保存在app的目录中(这是我用getExternalFilesDir(null)获得的)。然后将图像作为流传递给意图。

如果这对您没有帮助,那么可能会检查是否安装了可以处理您的视频类型的应用程序(是mp4还是格式是什么?)