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

时间:2015-03-24 17:46:16

标签: java android sqlite android-studio

我没问题,也许你知道我能做些什么。我有数据库,其中一列是RECORD_PATH,在这一栏中我想存储我的声音路径并在Media Player上使用它。 现在我不知道哪种方式更好(SD / ASSETS / RAW上的声音)。我不知道如何将这条路径转移到MEDIA PLAYER?有人得到这样的类似问题并在自己的项目上解决了吗?

1 个答案:

答案 0 :(得分:1)

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

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

Environment.getExternalStorageDirectory().getAbsolutePath()

不要忘记将以下权限添加到您的清单中:

<manifest ...>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
</manifest>

因此,将所有内容组合在一起可以执行与保存文件类似的操作:

String myAppDir = Environment.getExternalStorageDirectory().getAbsolutePath() + File.separator + 'raw';
String fileName = "myFile.wav";

String filePath = myAppDir + File.separator + fileName;

File f = new File(filePath);
f.write(...);
f.flush();
f.close();

然后将文件传递给内置播放器,您可以按如下方式调用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();