0

我想在它弹出时列出一个列表,只显示那些可以播放视频/音频的应用程序。我该怎么做?

没有要播放的特定文件,只想从列表中启动媒体播放器。提前致谢。下面是我感兴趣的例子。

在此处输入图像描述

4

3 回答 3

0

那是不可能的。(无需编写内核模块)

您不能通过源代码/二进制文件过滤其他应用程序。对于您想要做的事情,您必须确定应用程序是否使用媒体库,即使应用程序使用它们,您也无法确定应用程序是否播放音频/视频。

您只能列出所有应用程序并拥有可以这样做的用户标记。

注意:所有应用程序都可以播放音频/视频,我想你想要那些这样做的吗?如果您想查看所有媒体播放器应用程序,您应该使用 Intent 和 MIME。

于 2013-09-07T10:31:14.747 回答
0

我想你想与其他应用分享你的音频/视频文件来播放它。为此,您必须使用意图。

使用ACTION_SEND操作共享二进制数据,同时设置适当的 MIME 类型并将数据的 URI 放在一个名为EXTRA_STREAM的额外文件中。这通常用于共享文件,但可用于共享任何类型的二进制内容:

Intent shareIntent = new Intent();
shareIntent.setAction(Intent.ACTION_SEND);
shareIntent.putExtra(Intent.EXTRA_STREAM, uriToFile);
shareIntent.setType("audio/*");
startActivity(Intent.createChooser(shareIntent, getResources().getText(R.string.send_t

更多详情文件

于 2013-09-07T10:31:48.653 回答
-1

您需要关注ListItem哪些触发器application 能够打开这种MIME类型的文件。您可以传递 dummyvideoPath以及audioPathwith MIMEtype, bundled inside Intent

Intent您需要在单击时触发ListItem

ListView listView = getListView();
listView.setOnItemClickListener(new OnItemClickListener() {

@Override
public void onItemClick(AdapterView<?> parent, View view,
        int position, long id) {
                // Add Video & Audio using If- Else or however you like to so
}
});

对于视频:

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

对于音频:

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

您也可以使用的方法CreateChooser

Intent sI = new Intent();
sI.setAction(Intent.ACTION_SEND);
sI.putExtra(Intent.EXTRA_STREAM, uriToFile);
sI.setType("audio/*");
startActivity(Intent.createChooser(sI, getResources().getText(R.string.text))
于 2013-09-07T10:31:42.203 回答