diff --git a/camera-scan/src/main/java/com/king/camera/scan/manager/BeepManager.java b/camera-scan/src/main/java/com/king/camera/scan/manager/BeepManager.java index 34f94c8..6a61f9a 100644 --- a/camera-scan/src/main/java/com/king/camera/scan/manager/BeepManager.java +++ b/camera-scan/src/main/java/com/king/camera/scan/manager/BeepManager.java @@ -61,7 +61,18 @@ public void setPlayBeep(boolean playBeep) { private synchronized void updatePrefs() { if (mediaPlayer == null) { - mediaPlayer = buildMediaPlayer(context); + new Thread(() -> { + MediaPlayer mp = buildMediaPlayer(context); + synchronized (BeepManager.this) { + if (mp != null) { + if (mediaPlayer == null) { + mediaPlayer = mp; + } else { + mp.release(); + } + } + } + }).start(); } if (vibrator == null) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) { @@ -120,4 +131,4 @@ public synchronized void close() { } } -} \ No newline at end of file +}