저는 미디어 플레이어에서 실제적으로 링톤을 연주하기 위해 노력하고 있습니다. 이것 이전에는 이 SQLite DB에 내 모든 RINGTONES 절대 경로를 저장했습니다. 벨소리를 재생해야 할 때 DB에서 경로를 가져와 URI로 변환하고 벨소리를 재생해야하지만 아래 코드 2 행에서 NULL POINTER EXCEPTION이 표시됩니다.Android의 MediaPlayer에서 Null 포인터 예외가 발생합니까?
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();
디버그, 나는 /내용으로 변수 soundpath의 가치를 얻을 :/미디어/내부/오디오/미디어/23
저를 제안하십시오.
는 편집 : 코드 해시 맵 URI를 잘 보지 않는
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 번 라인에서 널 포인터 예외를 일으키지 않아야합니다. 그래서 무슨 일이 일어나는지 잘 모르겠습니다. stacktrace를 게시하고 이상적으로 미디어 플레어 작성 코드 (어떤 컨텍스트가 있습니까?)를 게시하십시오. –