2017-02-28 147 views
1

在我的應用程序中使用媒體播放器類播放鈴聲時,它會崩潰。當我選擇一首歌曲作爲鈴聲時,使用默認鈴聲時它可以正常工作,並且在使用鈴聲和音頻管理器類播放鈴聲時,它不會崩潰,但我無法循環鈴聲。android studio,播放自定義鈴聲?

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

登錄貓錯誤:

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

請分享您的代碼。 –

+0

我曾嘗試過許多mediaplyer的組合,但結果是相同的 –

+0

如果你的問題已經解決了,你可以接受我的答案@AbhishecKumar –

回答

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

+0

我應該使用TYPE_RINGTONE –

+0

是的,你可以使用,你也可以檢查該鏈接也是完整的例子。 –

+0

仍然應用程序崩潰,當選擇一首歌曲作爲鈴聲 –

1

問題迎刃而解::它的權限問題主要集中在Android SDK中23(棉花糖) 要解決,加入這一行

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日,