【发布时间】:2012-07-15 23:27:42
【问题描述】:
我正在尝试使用 Android 的 VideoView 从设备上的 sdcard 文件夹中播放视频。看起来它过去工作得很好,但我重构了一些代码,现在我似乎无法让它工作。这是一个示例:
// filepath = Environment.getExternalStorageDirectory().getPath() + "/test.mp4"
videoView = new VideoView(AkadiApplication.Instance().getApplicationContext());
videoView.setVideoURI(Uri.parse(filePath));
videoView.start();
videoView.requestFocus();
我已通过应用程序验证该文件存在,因此我知道这不是 FileNotFound 问题。
另外,如果我设置了一个 onComplete 回调,它会被调用,就像视频播放一样(没有视频或声音,只是视图应该在的黑色方块)。我知道视频编解码器是有效的,因为设备在我的应用程序之外播放它。我认为这可能与权限问题有关:
【问题讨论】:
-
这段代码是什么?尝试将您的构造函数更改为
videoView = new VideoView(AkadiApplication.this);另外,您如何将 videoView 添加到屏幕上?仅使用您发布的代码,我看不到 VideoView 是如何添加到屏幕上的。 -
抱歉,我应该解释一下 AkadiApplication 是什么,它是应用程序的单例。它使我无论身在何处都可以访问上下文。此代码位于应返回 View 的函数内部,在本例中为已初始化并正在播放的 VideoView。没有包含 VideoView 的布局文件,我正在以编程方式将所有内容添加到 Activity。
标签: android android-videoview android-sdcard