MediaPlayer - 找不到语音笔记文件路径

时间:2017-01-22 18:16:11

标签: android

我在三星Galaxy S6上录制了一个语音注释,并将其标记为“Hello.m4a”。 我有一个名为mp的MediaPlayer对象。当用户按下按钮时,我希望此对象播放语音注释。但是,我似乎无法弄清楚语音笔记的文件路径是什么?

我的问题是

A)是否有一般文件路径可用于进入包含所有语音注释的文件夹? B)如果没有,我怎么能以编程方式找到路径?

以下是我正在尝试做的事情的片段,但没有取得任何成功:

mpintro = MediaPlayer.create(this,Uri.parse(Environment.getExternalStorageDirectory().getPath()+ "/hello.m4a"));
mpintro.start();

1 个答案:

答案 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;。