【问题标题】:Why isn't this triggering the default video player?为什么这不会触发默认视频播放器?
【发布时间】:2011-11-24 09:22:00
【问题描述】:

我在我的一个应用程序中使用以下代码,它始终用于与 Android 3.0 - 3.2 中的默认视频播放器一起使用。我没有更新操作系统,但由于某种原因,当您选择要使用哪个应用程序打开视频文件时,默认视频播放器不再作为选项显示。

Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.parse(filePath), "video/*");
startActivity(intent);

我可能已经将setDataAndType() 方法从Uri.fromFile(file) 更改为Uri.parse(filepath),但这是否足以产生这样的影响?

有什么想法吗?

【问题讨论】:

  • 您的设备(运行应用程序的设备)上是否安装了视频播放器?
  • 是的,我已经安装了三个视频播放器 - 其中两个显示了,但默认的操作系统视频播放器没有。我在 Acer Iconia A500 上运行它,但我也有其他设备上的报告。

标签: android video android-intent android-3.0-honeycomb


【解决方案1】:

尝试对视频的实际类型使用真正的 MIME 类型,而不是使用通配符。

【讨论】:

  • Android 文档说你可以使用video/*,我已经尝试过其他人 - 结果相同。
【解决方案2】:

我终于找到了我的问题的解决方案,我认为这很奇怪。以下代码不起作用:

myIntent.setDataAndType(Uri.parse(filePath), "video/*");

...但确实如此:

myIntent.setDataAndType(Uri.fromFile(new File(filePath)), "video/*");

如果您希望在能够打开视频文件的应用程序列表中弹出默认操作系统视频播放器,则似乎需要Uri.fromFile()。我不知道为什么会这样。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-05-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多