【问题标题】:Playing media from internal storage directory I created从我创建的内部存储目录播放媒体
【发布时间】:2013-03-19 14:05:03
【问题描述】:

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

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)

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

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

【问题讨论】:

    标签: android android-file


    【解决方案1】:

    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" />
    

    【讨论】:

    • 谢谢,我会看看那些链接。我确实在清单中设置了该权限
    • 可能与您尝试访问的视频文件有关,您是否尝试过其他视频?你仍然得到同样的错误吗?尝试使用这个:link
    • 视频效果很好。我通过从原始资源中播放它来测试它并且它有效。所以这不是问题
    • 可能是直接访问视频时播放的视频。您是否尝试过其他视频文件,只是想看看它是否也会给您同样的错误?
    • 不确定我是否明白你在说什么。我的意思是从手机 res.raw.video1 播放视频时它可以工作。
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-08-19
      • 1970-01-01
      相关资源
      最近更新 更多