【问题标题】:Error generating beep using ToneGenerator class使用 ToneGenerator 类生成哔声时出错
【发布时间】:2012-11-07 23:00:32
【问题描述】:

我是安卓开发新手

我正在使用一个简单地改变音量和播放哔声“以预览当前声音级别”的 Android 应用程序

我在ToneGenerator 类中使用startTone 来生成此哔声,如下所示:

 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

谢谢。

【问题讨论】:

    标签: android beep tone-generator


    【解决方案1】:

    我知道现在为时已晚,但我正在发布答案,因为任何人稍后会来。

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

    完整代码:

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

    【讨论】:

    • 添加tg.Release();后,我还必须重新启动整个模拟器(不仅仅是应用程序)以防止应用程序崩溃。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-09
    • 2020-09-03
    • 1970-01-01
    • 2018-08-30
    相关资源
    最近更新 更多