2

拍摄大约 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);
    }
} 
4

1 回答 1

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);
    }
}
于 2017-04-30T06:33:33.217 回答