2012-07-20 68 views
1

我試圖用簡單的通知聲音在我的應用程序的聲音。但我無法讓它工作。當我使用RingManager.TYPE_NOTIFICATION時沒有聲音。我應該提到,當我使用TYPE_ALARM或TYPE_RINGTONE(或TYPE_ALL =在我的手機中是TYPE_RINGTONE)時,它可以工作。我也嘗試setVolume(),但沒有結果。TYPE_NOTIFICATION與MediaPlayer的

當我將消息發送到自己在這一刻(從另一個電話)我可以聽到通知聲音。

有些人想幫助我,但現在還沒有解決。也許有人可以給我最簡單的日食項目,我可以檢查它是否有效?也許這只是我的手機有問題嗎?我有三星Galaxy S2。

這是我的代碼。我做錯了什麼?或者我應該檢查什麼?

Uri _sound = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION); 
// _sound.toString() returns "content://settings/system/notification_sound" 

// this doesn't work either 
// Uri _sound = RingtoneManager.getActualDefaultRingtoneUri(getApplicationContext(), RingtoneManager.TYPE_NOTIFICATION); 
// _sound.toString() returns "content://media/internal/audio/media/10" if it can help 

mp = new MediaPlayer(); 
try { 
    // doesn't change anything while using TYPE_NOTIFICATION 
    // mp.setVolume(1.0f, 1.0f); 

    // tried also mp.setDataSource(context, Settings.System.DEFAULT_NOTIFICATION_URI); 
    // but no effect 
    mp.setDataSource(getApplicationContext(), _sound); 
    mp.setLooping(false); 
    mp.prepare(); 
} catch(IOException e) {} 
mp.start(); 

謝謝。

回答

2

您可以嘗試使用此語法來代替:

Uri _sound = RingtoneManager.getActualDefaultRingtoneUri(Context, RingtoneManager.TYPE_NOTIFICATION); 

這對我的作品。

你可以試試這個太:

mp.setDataSource(context, Settings.System.DEFAULT_NOTIFICATION_URI); 
+0

沒有結果。仍然沒有聲音,再次使用TYPE_ALARM和TYPE_RINGTONE。 – tobi 2012-07-20 16:55:02

+0

愚蠢的問題:你是否檢查通知音未設置爲「無聲」?另外如果你把Log.d(「NotifURI」,_sound.toString());它返回什麼? – BrainCrash 2012-07-20 16:58:32

+0

當有人向我發送消息時,我可以聽到通知聲音,我已經寫下了這個消息。該代碼返回「內容://媒體/內部/音頻/媒體/ 10」 – tobi 2012-07-20 17:17:34