如何判断哪个应用可以播放视频/音频?

时间:2013-09-07 10:23:25

标签: android

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

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

enter image description here

3 个答案:

答案 0 :(得分:0)

多数民众赞成不可能。 (没有写入内核模型)

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

您只能列出所有应用并拥有可以执行此操作的用户标记。

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

答案 1 :(得分: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

有关详细信息Documents

答案 2 :(得分:-1)

您需要将ListItem的意图放在触发application能够打开那种MIME类型文件的videoPath上。您可以将audioPath以及MIME类型的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))

的方法
{{1}}