我必须开发一个应用程序,我从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);
}
答案 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还是格式是什么?)