Java 如何使用SQLite数据库中的路径数据播放声音

Java 如何使用SQLite数据库中的路径数据播放声音,java,android,sqlite,android-studio,Java,Android,Sqlite,Android Studio,我有点小问题,也许你知道我能做什么。我得到了数据库,其中一列是RECORD_PATH,在这个列中,我想存储声音的路径,并在媒体播放器上使用它。 现在我不知道哪种方式更好(SD/ASSETS/RAW上的声音)。也不知道如何将此路径传输到媒体播放器?有人遇到了类似的问题,并在自己的项目中解决了它 您需要使用内置常量来访问用户SD卡 您可以通过以下调用获取此操作的路径: Environment.getExternalStorageDirectory().getAbsolutePath() 不要忘记将

我有点小问题,也许你知道我能做什么。我得到了数据库,其中一列是RECORD_PATH,在这个列中,我想存储声音的路径,并在媒体播放器上使用它。
现在我不知道哪种方式更好(SD/ASSETS/RAW上的声音)。也不知道如何将此路径传输到媒体播放器?有人遇到了类似的问题,并在自己的项目中解决了它

您需要使用内置常量来访问用户SD卡

您可以通过以下调用获取此操作的路径:

Environment.getExternalStorageDirectory().getAbsolutePath()
不要忘记将以下权限添加到清单中:

<manifest ...>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
</manifest>
然后,要将文件传递给内置播放机,您可以创建并调用一个Intent,如下所示:

File file = new File(filePath);
Intent i = new Intent(Intent.ACTION_VIEW);
i.setDataAndType(Uri.fromFile(file), "audio/*");
startActivity(i);
如果您有任何问题,请告诉我,我可以进一步扩展答案

更新:

上面是保存一个文件,然后使用内置媒体播放器播放该文件

如果文件已在SD卡上,并且您希望以编程方式播放该文件,则可以使用以下代码:

mpintro = MediaPlayer.create(this, Uri.parse(Environment.getExternalStorageDirectory().getPath()+ "/raw/intro.mp3"));
mpintro.setLooping(true);
        mpintro.start();

你的声音来自哪里?如果是由用户录制的,最好的选择是将其存储在SD上,如果声音文件随应用程序一起提供,那么您应该使用原始资源。然后,只需使用API进行媒体播放,路径来自您的数据库.Thx,用于回答@JonasCz。我的声音类型文件是mp3,并在我的应用程序中提供。您知道如何将此路径从数据库传输到媒体播放器吗?非常有用的回答:)请让我解释一下我的应用程序是如何工作的。我从数据库中读取和显示数据,当然我得到了nextbutton之类的东西,它将我移动到下一行。对于每一个dispay,我想为这一行播放正确的声音。不知道您的答案将如何处理我的项目:(例如,我的数据库中的1行“字符串1”、“字符串2”、“字符串3”、“字符串4”、“记录路径”。如果我进入了录制路径,例如sd/sound/sound.mp3,我看不到使用所有代码的意义。hi@Artur,我更新了我的答案,以向您显示您可能需要从sd卡播放媒体文件的代码。这与您所追求的更接近吗?
mpintro = MediaPlayer.create(this, Uri.parse(Environment.getExternalStorageDirectory().getPath()+ "/raw/intro.mp3"));
mpintro.setLooping(true);
        mpintro.start();