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