0

CountDownTimer の有効期限が切れたときにサウンドを再生しようとしています。思うように動かせないようです。ToneGenerator を使用していくつかのサンプル コードを見てきましたが、期待どおりに動作していません。また、Android と Java を初めて使用するため、うまく動作させる方法がよくわかりません。

ここに私が持っているものがあります: - カウントダウン タイマーが動作します。クリックすると開始および停止し、もう一度クリックすると再開します。ここではすべてが完璧です。

  • デバイスからいくつかのサウンドを再生できましたが、実際には何らかの理由で繰り返されます。理由がわからない。

これが私が望むものです: - CountDownTimer の onFinish()、2800Hz 前後のトーンを 2 秒または 2.5 秒間生成したいと思います。- 動作させた後、たとえば 2800Hz と 2000Hz をそれぞれ 50ms 程度、2 ~ 2.5 秒間交互に鳴らすというアイデアを試してみたいと思います。

** 編集 **

public void soundBuzzer() {
    ToneGenerator toneGen;
    int type1, type2;
    toneGen = new ToneGenerator(AudioManager.STREAM_MUSIC, 100);

    type1 = ToneGenerator.TONE_DTMF_6;
    type2 = ToneGenerator.TONE_DTMF_8;

    toneGen.startTone(type2, 2000);
}
4

1 に答える 1

0

ToneGeneratorは、番号を押したときに電話のトーンのように聞こえるトーンを生成します。そのクラスを使ってブザーを鳴らして、いい音にすることができませんでした。その結果、私はサウンド用のMP3を再生することになりました。

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

// function to generate a tone for 3 seconds
public void soundBuzzer( boolean shortBuzzer ) {
    MediaPlayer mp;

    if( !shortBuzzer )
        mp = MediaPlayer.create(appContext, R.raw.buzzer_2s);
    else
        mp = MediaPlayer.create(appContext, R.raw.buzzer_short);

    mp.start();

}
于 2013-01-06T21:37:57.553 に答える