chewie
chewie copied to clipboard
Screen orientation change breaks video
After the video is initialized, any change in screen orientation (either by going fullscreen with forced orientation or by device rotation) the video breaks and it can no longer be played.
Handler (android.os.Handler) {ebeda42} sending message to a Handler on a dead thread java.lang.IllegalStateException: Handler (android.os.Handler) {ebeda42} sending message to a Handler on a dead thread
at android.os.MessageQueue.enqueueMessage(MessageQueue.java:560)
at android.os.Handler.enqueueMessage(Handler.java:786)
at android.os.Handler.sendMessageAtTime(Handler.java:735)
at android.os.Handler.sendMessageDelayed(Handler.java:705)
at android.os.Handler.sendMessage(Handler.java:643)
at android.os.Message.sendToTarget(Message.java:468)
at androidx.media3.common.util.SystemHandlerWrapper$SystemMessage.sendToTarget(SystemHandlerWrapper.java:160)
at androidx.media3.exoplayer.ExoPlayerImplInternal.setPlayWhenReady(ExoPlayerImplInternal.java:352)
at androidx.media3.exoplayer.ExoPlayerImpl.updatePlaybackInfoForPlayWhenReadyAndSuppressionReasonStates(ExoPlayerImpl.java:2821)
at androidx.media3.exoplayer.ExoPlayerImpl.updatePlayWhenReady(ExoPlayerImpl.java:2804)
at androidx.media3.exoplayer.ExoPlayerImpl.setPlayWhenReady(ExoPlayerImpl.java:833)
at androidx.media3.common.BasePlayer.play(BasePlayer.java:114)
at io.flutter.plugins.videoplayer.VideoPlayer.play(VideoPlayer.java:131)
at io.flutter.plugins.videoplayer.VideoPlayerPlugin.play(VideoPlayerPlugin.java:166)
at io.flutter.plugins.videoplayer.Messages$AndroidVideoPlayerApi.lambda$setUp$6(Messages.java:463)
at io.flutter.plugins.videoplayer.Messages$AndroidVideoPlayerApi$$ExternalSyntheticLambda8.onMessage(Unknown Source:2)
at io.flutter.plugin.common.BasicMessageChannel$IncomingMessageHandler.onMessage(BasicMessageChannel.java:261)
at io.flutter.embedding.engine.dart.DartMessenger.invokeHandler(DartMessenger.java:292)
at io.flutter.embedding.engine.dart.DartMessenger.lambda$dispatchMessageToQueue$0$io-flutter-embedding-engine-dart-DartMessenger(DartMessenger.java:319)
at io.flutter.embedding.engine.dart.DartMessenger$$ExternalSyntheticLambda0.run(Unknown Source:12)
at android.os.Handler.handleCallback(Handler.java:958)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loopOnce(Looper.java:205)
at android.os.Looper.loop(Looper.java:294)
at android.app.ActivityThread.main(ActivityThread.java:8177)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:552)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:971)
This is fixed in latest flutter master branch as per this thread https://github.com/flutter/flutter/issues/156451 https://github.com/flutter/flutter/issues/160933