2014-08-30 68 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