【问题标题】:Android (Intent.ACTION_VIEW) not recognizing on Mi device for mimeType video/mp4Android (Intent.ACTION_VIEW) 无法在 Mi 设备上识别 mimeType 视频/mp4
【发布时间】:2016-01-13 13:38:26
【问题描述】:

我从相机拍摄了一段视频,该视频保存在 sdCard 上的相机/DCIM 位置

现在我的应用采用视频的本地路径并尝试使用默认视频播放器播放视频,代码如下

 private void playVideo(String path) {
        Uri videoUri = Uri.parse(path);
        Intent videoIntent = new Intent(Intent.ACTION_VIEW);
        videoIntent.setDataAndType(videoUri, "video/*");
        if (videoIntent.resolveActivity(getPackageManager()) != null) {
        startActivity(Intent.createChooser(videoIntent, null));
        }
    }

现在的问题是视频无法在 Mi 设备和其他一些设备上播放“未找到媒体视图”的 toast。

但是通过从 FileManager 应用程序中选择视频来播放相同的视频。

所以我想问题不在于 VideoPlayer。 INSTEAD 我认为这是 mimeType 与播放器共享的问题。但这只是我的假设。

任何人都遇到过类似的问题,我需要帮助,因为这个问题占用了我的时间。 谢谢

【问题讨论】:

  • “我从相机拍摄了一段视频,该视频保存在 sdCard 上的相机/DCIM 位置”——因此,您知道实际的 MIME 类型是什么。因此,您应该将 video/* 替换为实际的 MIME 类型。
  • 也试过了,我的 mp4 视频的 video/mp4 没有帮助
  • path 到底是什么? IOW,如果你将它记录到 LogCat,它会是什么样子?
  • 路径 - "/storage/emulated/0/DCIM/Camera/VID_20160113_130138.mp4"

标签: android mime-types


【解决方案1】:

/storage/emulated/0/DCIM/Camera/VID_20160113_130138.mp4 不是Uri 的有效字符串表示形式。 Uri 需要一个方案。

据推测,曾几何时,您为此有一个 File 对象。使用它和Uri.fromFile(),而不是Uri.parse()。或者,使用Uri.fromFile(new File(path))。这将为您提供正确的方案设置。

【讨论】:

  • 非常感谢,在过去的 8 个小时里,我一直在思考这个问题......设置架构有效......而不是这个 - Uri videoUri = Uri.parse(path) ...我把 Uri videoUri = Uri.fromFile(new File(path));
  • 还有一个问题 - 即使我使用没有架构的 Uri,“路径”对于 Nexus 5 等少数其他设备如何工作?
猜你喜欢
  • 1970-01-01
  • 2019-11-14
  • 2013-09-06
  • 2019-04-02
  • 1970-01-01
  • 2013-02-23
  • 2019-10-18
  • 1970-01-01
  • 2015-03-20
相关资源
最近更新 更多