2011-01-27 120 views
1

我目前正在開發一個Android應用程序,以不同的時間間隔向用戶播放聲音。我有工作代碼(下面包含),其功能與我的Hero(運行2.2)和1.6仿真器上的預期功能完全相同。然而,它不適用於我的朋友Xperia x8 - 沒有聲音播放。他有一個通知音設定,當他收到一個文本等時可以正常播放。Android MediaPlayer不在某些平臺上播放聲音

private void prepareAudio(){ 
    alert = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION); 
    mp = new MediaPlayer(); 
    if(alert != null){ 
     try { 
      mp.setDataSource(ctx, alert); 
     } catch (IllegalArgumentException e) { 
      Log.i("Prepare Audio", e.getMessage()); 
     } catch (SecurityException e) { 
      Log.i("Prepare Audio", e.getMessage()); 
     } catch (IllegalStateException e) { 
      Log.i("Prepare Audio", e.getMessage()); 
     } catch (IOException e) { 
      Log.i("Prepare Audio", e.getMessage()); 
     } 
    } 
    am = (AudioManager)ctx.getSystemService(Context.AUDIO_SERVICE); 
} 

private void notifyUser(){ 
    if(alert != null){ 
     if (am.getStreamVolume(AudioManager.STREAM_ALARM) != 0) { 
      mp.setAudioStreamType(AudioManager.STREAM_ALARM); 
      mp.setLooping(false); 
      try { 
       mp.prepare(); 
      } catch (IllegalStateException e) { 
       Log.i("Notify User", e.getMessage()); 
      } catch (IOException e) { 
       Log.i("Notify User", e.getMessage()); 
      } 
      mp.start(); 
     } else { 
      Log.i("Notify User", "Alarm volume zero"); 
     } 
    } else { 
     Log.i("Notify User", "Uri is null"); 
    } 
    long[] pattern = {0,200,300,600}; 
    v.vibrate(pattern, -1); 
} 

PrepareAudio被稱爲上初始化類,以及向notifyUser每次我們想要播放的聲音。它應該時,手機總是振動,所以notifyUser肯定被稱爲。

我朋友安裝的版本使用e.printStackTrace而不是Log.i,所以logcat中沒有任何東西被吐出來。我會試着去拿他的手機把它更新到Log.i的版本,但同時代碼有什麼明顯的錯誤可能導致這樣一個間歇性的問題?

感謝,

回答

2

所以事實證明,更新我原來的帖子中列出的異常處理似乎已經解決了這個問題。

如果您使用的是什麼上面的代碼,這是值得注意的是,有時e.getMessage()返回null,所以而非

Log.i("Notify User", e.getMessage()); 

使用

Log.i("Notify User", e.getMessage() + ""); 

爲了避免任何討厭FC引發異常時。

對不起,偶然無法回答的問題!

0

不知道,但較舊的Android版本有問題,播放WAV文件。你試圖播放這些WAV文件或MP3文件嗎?

+0

我已經測試過一個MP3(在模擬器中,有1.6),然後無論我的英雄有(2.2),這兩個工作。我不知道x8使用的是什麼格式,或者哪個版本的Android(儘管快速谷歌建議2.1)。謝謝! – Dan 2011-01-27 19:03:18

相關問題