2014-08-30 67 views
0

這是想打一些聲音時,通知設置媒體播放器不能正常工作的android

private void playRingtone() { 
    AudioManager am = (AudioManager) getSystemService(Context.AUDIO_SERVICE); 
    if (am.getRingerMode() == AudioManager.RINGER_MODE_NORMAL) { 
     try { 
      MediaPlayer mp = MediaPlayer.create(this, R.raw.notification_ringtone); 
      mp.start(); 
     } catch (IllegalStateException e) { 
      Log.d(TAG, "MediaPlayer problem"); 
      e.printStackTrace(); 
     } 
    } 
} 

使用調試進展順利,但沒有播放聲音的功能。爲什麼???

+0

在調用mp.start()之前檢查'mp'不是'null'後調用'create(...)'。 – Squonk 2014-08-30 11:30:47

+0

不,mp不爲null。 – dsb 2014-08-30 11:59:37

+0

然後在這種情況下,似乎'R.raw.notification_ringtone'不包含任何有效的音頻,或者您的測試設備上的音量被關閉。 – Squonk 2014-08-30 12:07:05

回答

0
MediaPlayer mediaPlayer = new MediaPlayer(); 

    try { 
mediaPlayer.setDataSource("android.resource://YOURPACKAGE_NAME/raw/"+file anme);  
      mediaPlayer.prepare(); 
      mediaPlayer.start(); 
    }catch(Exceptions e){ 
    } 
+0

這與OP已經在做什麼有什麼實質性的區別? MediaPlayer的'create(...)'方法是隱式創建實例,設置數據源並準備MediaPlayer實例的便捷方法。 – Squonk 2014-08-30 11:51:31