2017-01-22 4 views
0

私はSamsung Galaxy S6に音声メモを録音し、 "Hello.m4a"というラベルを付けました。 私はmpというMediaPlayerオブジェクトを持っています。ユーザーがボタンを押したときにこのオブジェクトが音声メモを再生するようにしたいと思います。しかし、私は音声メモのファイルパスが何であるか把握していないようです。MediaPlayer - 音声メモファイルパスを見つけることができません

私の質問は、私は音声メモのすべてを含むフォルダに入るために使用することができ、一般的なファイルパスがあります)

A

ですか? B)そうでない場合は、プログラムでパスを見つけるにはどうすればよいですか?ここで

は、私がどんな成功せず、何をしようとしているの抜粋です:

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

答えて

1

あなたはすべての必要な権限を持っていますか?

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
アプリケーションで

チェック許可(例えばのonCreate()メソッド): マニフェストを確認し、それが含まshoud

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" 

「EXTERNAL_STORAGE」を使用すると、正常です。

関連する問題