Шумы затвора прекращаются

Примерно через 10-15 фотографий шум затвора перестает работать и не возвращается, пока вы не перезапустите приложение. Эта ошибка в студии Android:

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);
    }
} 

person Sunny.A    schedule 14.02.2017    source источник
comment
не могли бы вы предоставить полный фрагмент кода   -  person bakriOnFire    schedule 14.02.2017
comment
Thread myThread = new Thread(new Runnable() { @Override public void run() { MediaActionSound sound = new MediaActionSound(); sound.play(MediaActionSound.SHUTTER_CLICK); } }); myThread.start();   -  person Sunny.A    schedule 14.02.2017
comment
вы открываете несколько объектов без вызова релиза.. посмотрите, поможет ли это stackoverflow.com/questions/11964623/   -  person bakriOnFire    schedule 14.02.2017


Ответы (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);
    }
}
person Mikhail    schedule 30.04.2017