使用 ToneGenerator 类生成提示音时出错

Mah*_*hat 4 android beep tone-generator

我是安卓开发的新手

我正在一个 android 应用程序中工作,它只是改变音量并播放哔声“以预览当前的声级”

startToneToneGenerator课堂上使用来生成这个哔哔声,像这样:

 ToneGenerator tg = new ToneGenerator(AudioManager.STREAM_RING, 100);
 tg.startTone(ToneGenerator.TONE_PROP_BEEP);
Run Code Online (Sandbox Code Playgroud)

有时此代码不起作用并生成以下异常

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
Run Code Online (Sandbox Code Playgroud)

谢谢。

Mah*_*hat 5

我知道现在为时已晚,但我正在发布答案,以便稍后有人会来。

这只是关于释放创建的对象,ToneGenerator因为快速创建“ToneGenerator”的对象而不释放它们会导致应用程序崩溃。

完整代码:

    final ToneGenerator tg = new ToneGenerator(AudioManager.STREAM_NOTIFICATION, 100);
    tg.startTone(ToneGenerator.TONE_PROP_BEEP);
    tg.release();
Run Code Online (Sandbox Code Playgroud)