【问题标题】:Shutter noises stop快门声停止
【发布时间】:2017-07-02 09:12:45
【问题描述】:

拍摄大约 10 到 15 张照片后,快门噪音停止工作,并且在您重新启动应用程序之前不会再次出现。这个错误在android studio中:

02-10 10:20:03.626 491-13501/? E/AudioFlinger: no more track names 
available 02-10 10:20:03.626 491-13501/? E/AudioFlinger: 
createTrack_l() initCheck failed -12; no control block? 02-10 
10:20:03.626 31837-31837/ E/AudioTrack: AudioFlinger could not create 
track, status: -12 02-10 10:20:03.627 31837-31837/ E/SoundPool: Error 
creating AudioTrack

代码如下:

Thread myThread = new Thread(new Runnable() {
    @Override
    public void run() {
        MediaActionSound sound = new MediaActionSound();
        sound.play(MediaActionSound.SHUTTER_CLICK);
    }
} 

【问题讨论】:

  • 能否提供完整的代码sn-p
  • Thread myThread = new Thread(new Runnable() { @Override public void run() { MediaActionSound sound = new MediaActionSound(); sound.play(MediaActionSound.SHUTTER_CLICK); } }); myThread.start();
  • 您正在打开多个对象而不调用 release..看看这是否有帮助 stackoverflow.com/questions/11964623/…

标签: android noise audioflinger shutter


【解决方案1】:

在我的应用程序中,我使用此代码。我也有类似的问题(几次播放后声音没有播放到最后)。但是在重用(而不是重新创建)MediaActionSound 之后问题就消失了。

PS:声音播放是异步的,所以你不需要创建线程。

static private MediaActionSound sound = null;

static public void playShutterSound(){
    if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.JELLY_BEAN) {
        if(sound == null) {
            sound = new MediaActionSound();
        }
        sound.play(MediaActionSound.SHUTTER_CLICK);
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-01-06
    • 1970-01-01
    • 2021-10-07
    • 2012-07-14
    • 2014-04-21
    • 1970-01-01
    • 2013-09-20
    • 1970-01-01
    相关资源
    最近更新 更多