1

所以我在内部存储上创建了一个目录,如下所示:

File mediadir = getDir("tvr", Context.MODE_PRIVATE);

然后我从服务器下载文件并将它们保存在这样的目录中:

URL url = new URL(urlString);
URLConnection conexion = url.openConnection();
conexion.connect();
int lenghtOfFile = conexion.getContentLength();
InputStream is = url.openStream();
Log.d("DOWNLOAD NAME",name);
FileOutputStream fos = new FileOutputStream(mediadir+name);
etc

然后文件保存成功,接下来我想像这样播放它们:

String path = filelist[playListIndex].getAbsolutePath();
videoView = (VideoView) findViewById(R.id.videoView);
videoView.setVisibility(View.VISIBLE);
videoView.setOnCompletionListener(this);
videoView.setVideoPath(path);
videoView.start();

其中路径是:

/data/data/com.mypackage/tvr/video.mp4

该文件不想播放此错误:

02-20 15:57:21.447: E/MediaPlayer(24143): error (1, -2147483648)

并且在设备上弹出一条消息:无法播放视频,抱歉此视频无法播放。

这是权利问题还是什么?如果是的话,我在想,因为我创造了它们,我就拥有它们的权利?

4

2 回答 2

0

CommonsWare 有一个很好的例子来说明如何使用 VideoView。这是一个与不想播放视频有类似问题的人的链接: Playing a video in VideoView in Android

这里还有一个他的示例的视频类,我在学习如何合并 VideoView 时发现它很有用: https ://github.com/commonsguy/cw-advandroid/blob/master/Media/Video/src/com/commonsware/android /video/VideoDemo.java希望这会有所帮助。

我还将确保您在清单集中具有权限设置:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
于 2013-02-20T14:47:09.777 回答
0

问题可能出在视频编码上。Android FROYO 和 Gingerbread 不支持“基线”H264 以外的 H264 格式。因此,如果您的视频是 Mp4 和 H264 编码,请确保其 “AVC 基线”编码。在 windows/Linux 中使用“媒体信息”等工具并检查您的视频编码。如果可能,将视频转换为基线。

另一种解决方法是跳过 Videoview 并使用视频播放意图并将播放重​​定向到应用程序。系统将提示用户选择一个播放器来处理播放。显然,如果视频视图无法播放文件,默认播放器也无法处理该文件。您可以选择其他一些已安装的播放器,例如 Mx-Player,它将完美地流式传输文件。

于 2013-03-19T06:05:03.570 回答