我正在努力在媒體播放器中實實在在地玩RINGTONES。在此之前,我有SQLite DB中存儲我所有的RINGTONES絕對路徑。當我必須播放鈴聲時,我需要從DB獲取路徑並將其轉換爲URI並播放鈴聲,但我在下面的代碼的第2行中獲得了NULL POINTER EXCEPTION。在Android中MediaPlayer中獲取空指針異常?
Uri u = Uri.parse(soundpath);
player = MediaPlayer.create(this, u);
Context con =getApplicationContext();
player.setWakeMode(con,PowerManager.PARTIAL_WAKE_LOCK);
player.setVolume(1f, 1f);
player.start();
在調試,我得到可變和聲的價值/內容:/媒體/內部/音頻/媒體/ 23
請給我建議。
EDITED:代碼用於所有的鈴聲存儲在HASHMAP
Ringtone ringtone = ringtoneMgr.getRingtone(currentPosition);
System.out.println(ringtone.getTitle(this));
File uripath=new File(ringtoneMgr.getRingtoneUri(currentPosition).toString());
Toast.LENGTH_LONG).show();
ringtonemap.put(ringtone.getTitle(this), uripath.getAbsolutePath());
arraylist.add(ringtone.getTitle(this));
這個URI看起來不正確的。它應該是'content:// media/internal/audio/media/23' - 你正確存儲它嗎? –
我將'content:/ media/internal/audio/media/23'作爲URI並將其轉換爲絕對路徑並將其保存爲hashmap。 –
即使錯誤的uri也不應該在第2行中引起空指針異常。所以我不確定發生了什麼。請發佈堆棧跟蹤,理想情況下更多的mediaplayer創建代碼(它是什麼上下文等)? –