我在三星Galaxy S6上录制了一个语音注释,并将其标记为“Hello.m4a”。 我有一个名为mp的MediaPlayer对象。当用户按下按钮时,我希望此对象播放语音注释。但是,我似乎无法弄清楚语音笔记的文件路径是什么?
我的问题是
A)是否有一般文件路径可用于进入包含所有语音注释的文件夹? B)如果没有,我怎么能以编程方式找到路径?
以下是我正在尝试做的事情的片段,但没有取得任何成功:
mpintro = MediaPlayer.create(this,Uri.parse(Environment.getExternalStorageDirectory().getPath()+ "/hello.m4a"));
mpintro.start();
答案 0 :(得分:1)
您是否拥有所有必要的权限? 检查你的清单,它应该包括:
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
检查应用程序中的权限(例如,在onCreate()方法中):
private static String[] PERMISSIONS_STORAGE = {
Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.WRITE_EXTERNAL_STORAGE
};
int permission = ActivityCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE);
if (permission != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this, PERMISSIONS_STORAGE, REQUEST_EXTERNAL_STORAGE);
}
从某个文件资源管理器中检查您的文件路径。 例如路径(内部存储)/Sounds/Hello.m4a,您可以这样:
String voiceNotePath = System.getenv("EXTERNAL_STORAGE") + "/Sounds/Hello.m4a"; // voiceNotePath = "/sdcard/Sounds/Hello.m4a"
使用&#34; EXTERNAL_STORAGE&#34;是正常的,因为现代手机的内部存储器足够大并且定义为&#34; EXTERNAL&#34;。