Reputation: 105
When playing ring tone in my app using media player class, it crashes. When I select a song as a ring tone, with default ring tones it works fine, and when playing ring tone using ring tone and audio manager class, it won't crash, but I am unable to loop the ring tone.
Uri audio = RingtoneManager.getActualDefaultRingtoneUri(getApplicationContext(),RingtoneManager.TYPE_RINGTONE);
mp = MediaPlayer.create(getApplicationContext(), audio);
Log cat error:
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.media.MediaPlayer.start()' on a null object reference
Upvotes: 1
Views: 571
Reputation: 105
PROBLEM SOLVED :: its a permission issue mainly in android sdk 23 (marshmallow) solved by , adding this line
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
requestPermissions(new String[]{android.Manifest.permission.WRITE_EXTERNAL_STORAGE}, 1);
requestPermissions(new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, 1);
}
or by changing targeted sdk version to 22 in build.gradle file ,
Upvotes: 1
Reputation: 3179
try this, its working for me,
Uri notification = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_RINGTONE);
MediaPlayer player = MediaPlayer.create(this, notification);
player.setLooping(true);
player.start();
for more refer this link. http://www.concretepage.com/android/android-ringtone-and-ringtonemanager-example-get-default-and-current-ringtone
Upvotes: 0