2011-01-31 37 views
18

我想補充一點,一些簡單的聲音(蜂鳴聲,BOOP,點擊等)到Android應用程序,所以我只是想知道是否有在Android OS或SDK可以在任何內建的聲音被利用。如果是這樣,他們將如何被訪問?我唯一的猜測已經在mediastore或soundpool類的某個地方......我很新,所以你可以提供任何幫助/提示將不勝感激。謝謝。在應用程序中是否可以使用任何內置/默認聲音?

回答

20

你可以玩默認的鈴聲:

MediaPlayer player = MediaPlayer.create(this, 
    Settings.System.DEFAULT_RINGTONE_URI); 
player.start(); 

您可以DEFAULT_NOTIFICATION_URIDEFAULT_ALARM_ALERT_URI的各種其他默認聲音替換DEFAULT_RINGTONE_URI

+1

android.provider.Settings.System – usman 2014-05-12 05:39:35

+1

更完整的樣本withh的錯誤處理 http://stackoverflow.com/questions/10335057/play-notification-default-sound-only-android – 2014-12-06 17:52:28

1

1上創建國家幫助,我們不能調用後創建所以我刪除了編寫代碼行做準備。

2-這對設備正常工作,但它在模擬器上崩潰?

3-除了鬧鈴,通知和鈴聲以外的其他聲音?

+0

我刪除了player.prepare( )從我的答案,因爲我仔細檢查了文件,你是正確的。 我不知道爲什麼它崩潰的模擬器,也許它沒有任何聲音文件播放?你能提供錯誤/崩潰的`logcat`輸出嗎? 我不相信除了3提供的其他任何其他默認系統聲音。 – 2011-02-02 15:42:20

8

以下是生成嘟嘟聲的一種方法。

創建extention .rtttl原始種源文件,並把 「C5:d = 4,O = 5,B = 250:C5」 在它(無引號)

然後添加以下代碼:

protected MediaPlayer _mediaPlayer; 

public void playFromResource(int resId) 
    { 
    if (_mediaPlayer != null) 
     { 
     // _mediaPlayer.stop();  freeze on some emulator snapshot 
     // _mediaPlayer.release(); 
     _mediaPlayer.reset();  // reset stops and release on any state of the player 
     } 
    _mediaPlayer = MediaPlayer.create(this, resId); 
    _mediaPlayer.start(); 
    } 

然後調用playFromResource,如果您的原始RTTTL資源傳遞的資源ID。

相關問題