Я работаю над RINGTONES прагматично в MEDIA PLAYER. До этого у меня хранился весь мой абсолютный путь RINGTONES в SQLite DB. В то время, когда мне нужно воспроизвести мелодию звонка, мне нужно получить путь от БД и преобразовать его в URI и воспроизвести мелодии звонка, но я получаю NULL POINTER EXCEPTION в строке 2 ниже кода.Получение исключения Null Pointer в MediaPlayer в Android?
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
Пожалуйста, предложите мне.
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' - вы правильно его сохраняете? –
Я получаю контент:/media/internal/audio/media/23 'как URI и преобразовываю его в абсолютный путь и сохраняю его в hashmap. –
Даже неправильный uri не должен вызывать исключение нулевого указателя в строке 2. Поэтому я не уверен, что происходит. Пожалуйста, разместите stacktrace и в идеале больше кода создания медиапланера (в каком контексте он и т. Д.)? –