56

ボタンが押されたことを示すビープ音を鳴らしたいと思います。自分の mp3 音楽ファイルをインポートしたり、ToneGenerator を使用したりする代わりに、デフォルトの Android ビープ音 (着信音の音量を調整するときなど) を使用する方法を知りたいですか?

4

4 に答える 4

83

... デフォルトの android ビープ音を使用します (着信音の音量を調整するときなど) ...

私のCyanogen 7 Nexus Oneと古いストックのT-Mobile Pulse Mini(記憶によると後者)では、私が聞く限り、これは音量変更時のデフォルトのビープ音です:

     final ToneGenerator tg = new ToneGenerator(AudioManager.STREAM_NOTIFICATION, 100);
     tg.startTone(ToneGenerator.TONE_PROP_BEEP);

の代替を求めているようですがToneGenerator、2行でまさにあなたが望むものを提供すると思います。

以下は、私が試した他の可能性のあるToneGenerator音で、一致しなかったものです (最初の 2 つは、ボリューム ビープ音の代替として役立つ可能性があります)。

     // Double beeps:     tg.startTone(ToneGenerator.TONE_PROP_ACK);
     // Double beeps:     tg.startTone(ToneGenerator.TONE_PROP_BEEP2);
     // Sounds all wrong: tg.startTone(ToneGenerator.TONE_CDMA_KEYPAD_VOLUME_KEY_LITE);
于 2012-05-02T14:42:27.177 に答える
77
public void playSound(Context context) throws IllegalArgumentException, 
                                              SecurityException, 
                                              IllegalStateException,
                                              IOException {

    Uri soundUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
    MediaPlayer mMediaPlayer = new MediaPlayer();
    mMediaPlayer.setDataSource(context, soundUri);
    final AudioManager audioManager = (AudioManager) context.getSystemService(Context.AUDIO_SERVICE);

    if (audioManager.getStreamVolume(AudioManager.STREAM_ALARM) != 0) {
        mMediaPlayer.setAudioStreamType(AudioManager.STREAM_ALARM);
        // Uncomment the following line if you aim to play it repeatedly
        // mMediaPlayer.setLooping(true);
        mMediaPlayer.prepare();
        mMediaPlayer.start();
    }
}

私は別の答えを見つけました:

try {
    Uri notification = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
    Ringtone r = RingtoneManager.getRingtone(getApplicationContext(), notification);
    r.play();
} catch (Exception e) {
    e.printStackTrace();
}

クレジットはhttps://stackoverflow.com/a/9622040/737925に送られます

于 2011-07-14T07:51:20.817 に答える
1

簡単な方法は、ToneGenerator クラスのインスタンスを使用することです。

    //declaration
    ToneGenerator toneG;
    //using any where`
    if(val>=taux_max)
    {
        taux_text.setTextColor(warnning_col);
        toneG.startTone(ToneGenerator.TONE_CDMA_ALERT_CALL_GUARD, 200); //200 is duration in ms
    }
于 2013-02-22T00:33:10.507 に答える