通过已安装的应用程序在Android中处理媒体文件

通过已安装的应用程序在Android中处理媒体文件,android,android-mediaplayer,android-video-player,android-audiorecord,Android,Android Mediaplayer,Android Video Player,Android Audiorecord,我有一个记录音频和视频的应用程序。然后,应用程序中有一个列表,显示这些录制的文件。当用户点击其中一个文件时,我想显示一个应用程序选项,用户可以选择播放这个点击的文件。下面是一个例子 我在互联网上看到的所有例子都是使用我已经在做的媒体播放器,但我希望暂停、停止等功能由用户设备中已经可用的应用程序处理 这可能吗?如果是这样,怎么办?我想你处理音频和视频的活动应该在AndroidManifest中有这个。 下面的intent文件管理器用于音频文件,类似地,您可以为相同的活动添加视频文件 <ac

我有一个记录音频和视频的应用程序。然后,应用程序中有一个列表,显示这些录制的文件。当用户点击其中一个文件时,我想显示一个应用程序选项,用户可以选择播放这个点击的文件。下面是一个例子

我在互联网上看到的所有例子都是使用我已经在做的媒体播放器,但我希望暂停、停止等功能由用户设备中已经可用的应用程序处理


这可能吗?如果是这样,怎么办?

我想你处理音频和视频的
活动应该在
AndroidManifest
中有这个。 下面的
intent文件管理器
用于音频文件,类似地,您可以为相同的
活动
添加视频文件

<activity ...>
        <intent-filter>
            <action android:name="android.intent.action.GET_CONTENT" />
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.OPENABLE" />
            <data android:mimeType="audio/*"/>
        </intent-filter>
</activity>
第二个参数就是我们需要传递给调用的
应用程序的数据,基本上我们传递数据的
URI

编辑2:
结果\u OK
活动
的继承变量。你不需要定义它


我希望它能对你有所帮助。

我通过在互联网上阅读找到了答案

首先准备文件位置,然后在此位置打开包含数据的意图

Uri fileURi = Uri.parse(tempFileURi); //i.e. /storage/emulated/0/Android/data/com.sahilsaid.appname/files/Music/Recording200.3gp
File file = new File(fileURi.toString());

 if (file.exists()) {
    Uri finalFileUri = Uri.fromFile(file);
    Intent intent = new Intent();
    intent.setAction(Intent.ACTION_VIEW);
    intent.setDataAndType(finalFileUri, URLConnection.guessContentTypeFromName(finalFileUri.toString()));
    startActivity(intent);

 }
您还需要修改AndroidManifest.xml文件,并按照@Aky的建议添加意图过滤器

   <activity
        android:name=".exampleActivity"
        android:label="@string/title_activity_example">
        <intent-filter>
            <action android:name="android.intent.action.GET_CONTENT" />
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.OPENABLE" />
            <data android:mimeType="audio/*"/>
        </intent-filter>
    </activity>

但用户单击列表中的某个记录后,我该怎么办。“我需要打一个特别的电话吗?”萨希尔编辑了我的回答。你可以找到解决办法。太好了,我现在就去试试。。。谢谢,洛蒂试一试,但效果并不如预期。单击列表项时不会发生任何事情。将显示“我的toast”消息,该消息链接到一个列表项单击方法。@Sahil作为您处理
片段的工具。使用
getActivity().setResult(…)
   <activity
        android:name=".exampleActivity"
        android:label="@string/title_activity_example">
        <intent-filter>
            <action android:name="android.intent.action.GET_CONTENT" />
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.OPENABLE" />
            <data android:mimeType="audio/*"/>
        </intent-filter>
    </activity>