1

ビープ音を鳴らし続けるためにToneGenaratorを使用しています。問題は、音量が小さすぎることです。

音量が8未満の場合は何も聞こえません。最大音量では、まったく音量が大きくなりません...

それはDTMFサウンドの制限ですか、それとも何か間違ったことをしていますか?

コードは次のとおりです。

private final int TONE_TYPE = ToneGenerator.TONE_DTMF_5;
private final int STREAM = AudioManager.STREAM_MUSIC;
private final int DOT_TIME = 3;

public SoundManager(Activity anActivity) {
    audio = (AudioManager) anActivity
            .getSystemService(Context.AUDIO_SERVICE);
    generator = new ToneGenerator(STREAM,
            audio.getStreamMaxVolume(STREAM));
}

private void playBeep() {
    generator.startTone(TONE_TYPE, DOT_TIME);
}
4

2 に答える 2

1

問題がどこにあるかを見つけました:

ToneGeneratorストリームボリュームが0から15の間である間、0から100の間のボリュームを取ります。したがって、audio.getStreamMaxVolume(STREAM)100のうち15を与える、それは低いです。

于 2012-12-04T23:38:27.730 に答える
1

これを使用して、現在のシステムボリュームを使用します。

ToneGenerator toneG = new ToneGenerator(AudioManager.STREAM_SYSTEM, 100);
于 2019-03-26T06:31:30.640 に答える