我想在弹出时列出一个列表,只显示那些可以播放视频/音频的应用。 我该怎么办?
无需播放特定文件,只想从列表中启动媒体播放器。 提前致谢。以下是我感兴趣的例子。
答案 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}}