android studio,播放自定义铃声崩溃?

时间:2017-02-28 18:37:29

标签: android nullpointerexception android-mediaplayer

使用媒体播放器课程在我的应用中播放铃声时,它会崩溃。当我选择一首歌作为铃声时,默认铃声可以正常工作,当使用铃声和音频管理器类播放铃声时,它不会崩溃,但我无法循环铃声。

Uri audio = RingtoneManager.getActualDefaultRingtoneUri(getApplicationContext(),RingtoneManager.TYPE_RINGTONE); 
mp = MediaPlayer.create(getApplicationContext(), audio); 

记录cat错误:

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

2 个答案:

答案 0 :(得分:1)

问题已解决::它的权限问题主要在android sdk 23(marshmallow) 解决了,添加这一行

 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);
    }

或在build.gradle文件中将目标sdk版本更改为22,

答案 1 :(得分:0)

试试这个,它为我工作,

Uri notification = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_RINGTONE);
MediaPlayer player = MediaPlayer.create(this, notification);
player.setLooping(true);
player.start();

了解更多信息,请参阅此链接。 http://www.concretepage.com/android/android-ringtone-and-ringtonemanager-example-get-default-and-current-ringtone