首页 > 解决方案 > 如何打开外部音乐播放器(例如 Pulsar、Retro Music Players)并播放我从列表视图中选择的歌曲?

问题描述

我在 listview 中有来自内部存储的歌曲列表,现在 onItemClickListener 我添加了以下代码:

    Intent intent = new Intent(Intent.ACTION_VIEW);
    intent.setDataAndType(FileProvider.getUriForFile(parent.getContext(), BuildConfig.APPLICATION_ID + ".provider", file), "audio/*");
    intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

    try {
        MainActivity.this.startActivity(intent);
    }
    catch (ActivityNotFoundException e)
    {
        Toast.makeText(parent.getContext(),"Music player not found", Toast.LENGTH_SHORT).show();
    }

它只是打开音乐播放器,不播放所选项目(歌曲)。现在,我该怎么做才能播放歌曲?

标签: androidlistviewaudioonclicklistener

解决方案


最后,我发现了我的错误,

我不得不使用

intent.setDataAndType(Uri.fromFile(file), "audio/*");

代替

intent.setDataAndType(FileProvider.getUriForFile(parent.getContext(), BuildConfig.APPLICATION_ID + ".provider", file), "audio/*");

因为“Fileprovider”仅用于从您的应用安装 apk。


推荐阅读