diff --git a/app/src/main/java/net/yrom/screenrecorder/BaseEncoder.java b/app/src/main/java/net/yrom/screenrecorder/BaseEncoder.java index 52ccdeb..86504bf 100644 --- a/app/src/main/java/net/yrom/screenrecorder/BaseEncoder.java +++ b/app/src/main/java/net/yrom/screenrecorder/BaseEncoder.java @@ -79,7 +79,10 @@ public void prepare() throws IOException { String mimeType = format.getString(MediaFormat.KEY_MIME); final MediaCodec encoder = createEncoder(mimeType); try { - encoder.setCallback(this.mCallback == null ? null : mCodecCallback); + if (this.mCallback != null) { + // NOTE: MediaCodec maybe crash on some devices due to null callback + encoder.setCallback(mCodecCallback); + } encoder.configure(format, null, null, MediaCodec.CONFIGURE_FLAG_ENCODE); onEncoderConfigured(encoder); encoder.start();