5

私はアンドロイド開発に不慣れです

私は、音量を変更してビープ音を鳴らすだけのAndroidアプリで作業しています。「現在のサウンドレベルをプレビューします」

クラスで使用startToneしてToneGenerator、次のようにこのビープ音を生成します。

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

ただし、このコードが機能せず、次の例外が生成される場合があります

11-20 00:32:44.262: E/AudioTrack(4701): AudioFlinger could not create track, status: -12
11-20 00:32:44.262: E/ToneGenerator(4701): AudioTrack->initCheck failed

ありがとう。

4

1 に答える 1

6

今では遅すぎることはわかっていますが、後で来る人のために答えを投稿しています。

ToneGenerator「ToneGenerator」のオブジェクトを解放せずに急速に作成すると、アプリケーションがクラッシュするため、作成したオブジェクトを解放するだけでした。

完全なコード:

    final ToneGenerator tg = new ToneGenerator(AudioManager.STREAM_NOTIFICATION, 100);
    tg.startTone(ToneGenerator.TONE_PROP_BEEP);
    tg.release();
于 2016-08-01T21:03:09.147 に答える