2017-01-23 102 views
0

我有一個語音備忘錄稱爲Hello.m4a媒體播放器 - 在設備文件路徑無法識別

以下是文件路徑到我的設備上的音頻:我想設置

enter image description here

這個語音記錄到一個MediaPlayer對象,並且不能爲我的生活弄清楚如何。這裏是我的最新嘗試,但我不斷收到一個空對象錯誤消息:

String voice = Environment.getExternalStorageDirectory().getPath() + "/VoiceRecorder/Hello.m4a"; 
    Log.d("MAIN",voice); 
    MediaPlayer mpintro = MediaPlayer.create(this, Uri.parse(voice)); 
    mpintro.start(); 

這裏就是我的日誌信息產生:

/storage/emulated/0/VoiceRecorder/Hello.m4a 

這裏是logcat的消息:

java.lang.NullPointerException: Attempt to invoke virtual method 'void android.media.MediaPlayer.start()' on a null object reference 

可有人請解釋我在這裏做錯了什麼?謝謝。

我擁有這些權限在我的清單文件:

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 

回答

2

當設置URI中的文件路徑,即前添加"file://"

MediaPlayer.create(this, Uri.parse("file://" + voice);

你必須讓MediaPlayer的明確知道它文件以及http流等。

此外,如果您的目標是API 23+,則需要運行時訪問storiage上的文件的權限。

+0

我添加了它,但仍然沒有。下面是正在得到的解析:file://storage/emulated/0/VoiceRecorder/Hello.m4a –

+0

應該是3個正斜槓 –

+0

抱歉想寫文件:///storage/emulated/0/VoiceRecorder/Hello.m4a –