我出了点小问题,也许你知道我能做什么。我得到了数据库,其中一列是RECORD_PATH,在本专栏中,我想存储声音的路径,并在媒体播放器上使用它。现在,我不知道哪一种方式更好(SD/ASSETS/RAW上的声音)。我也不知道怎样才能把这条路传递给媒体播放器?有人有类似的问题,并解决了自己的项目?
发布于 2015-03-24 17:56:23
您将希望使用内置常量来访问用户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();然后,要将文件传递给内置播放器,您可以按以下方式创建并调用意图:
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();https://stackoverflow.com/questions/29239489
复制相似问题