-
Notifications
You must be signed in to change notification settings - Fork 221
Description
Describe the bug
setScreenShareEnabled causes the application to freeze. Sometimes it happens even the first time it’s called, and in other cases the app freezes after, for example, enabling and disabling screen sharing around 10 times. it freezes the app randomly between 1 or 20 call setScreenShareEnabled!
To Reproduce
await MeetUtils().requestBackgroundPermission();
await lp.setScreenShareEnabled(true, captureScreenAudio: true);
await Navigator.of(context).pushNamed('/paint');
await lp.setScreenShareEnabled(false, captureScreenAudio: false);
await FlutterBackground.disableBackgroundExecution();
Expected behavior
Enable or disable as user needs, without freeze
Platform information
- Flutter version: 3.41.1
- Plugin version: 2.6.3
- Flutter target OS: Android
- Flutter target OS version: 14
- Flutter console log:
W/MIUIScout App(27277): Enter APP_SCOUT_WARNING State
W/MIUIScout App(27277): (Current message: duration=2502ms seq=2460 late=6ms h=android.os.Handler c=io.flutter.embedding.engine.dart.DartMessenger$$ExternalSyntheticLambda0)
W/MIUIScout App(27277): Event:APP_SCOUT_WARNING Thread:main backtrace:
W/MIUIScout App(27277): at jdk.internal.misc.Unsafe.park(Native Method)
W/MIUIScout App(27277): at java.util.concurrent.locks.LockSupport.park(LockSupport.java:221)
W/MIUIScout App(27277): at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:754)
W/MIUIScout App(27277): at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1099)
W/MIUIScout App(27277): at java.util.concurrent.CountDownLatch.await(CountDownLatch.java:230)
W/MIUIScout App(27277): at org.webrtc.ThreadUtils$2.run(ThreadUtils.java:118)
W/MIUIScout App(27277): at org.webrtc.ThreadUtils.executeUninterruptibly(ThreadUtils.java:68)
W/MIUIScout App(27277): at org.webrtc.ThreadUtils.awaitUninterruptibly(ThreadUtils.java:115)
W/MIUIScout App(27277): at org.webrtc.ThreadUtils.invokeAtFrontUninterruptibly(ThreadUtils.java:180)
W/MIUIScout App(27277): at org.webrtc.ThreadUtils.invokeAtFrontUninterruptibly(ThreadUtils.java:196)
W/MIUIScout App(27277): at com.cloudwebrtc.webrtc.OrientationAwareScreenCapturer.stopCapture(OrientationAwareScreenCapturer.java:140)
W/MIUIScout App(27277): at com.cloudwebrtc.webrtc.GetUserMediaImpl.removeVideoCapturer(GetUserMediaImpl.java:845)
W/MIUIScout App(27277): at com.cloudwebrtc.webrtc.MethodCallHandlerImpl.trackDispose(MethodCallHandlerImpl.java:1735)
W/MIUIScout App(27277): at com.cloudwebrtc.webrtc.MethodCallHandlerImpl.onMethodCall(MethodCallHandlerImpl.java:644)
W/MIUIScout App(27277): at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage(MethodChannel.java:267)
W/MIUIScout App(27277): at io.flutter.embedding.engine.dart.DartMessenger.invokeHandler(DartMessenger.java:286)
W/MIUIScout App(27277): at io.flutter.embedding.engine.dart.DartMessenger.lambda$dispatchMessageToQueue$0$io-flutter-embedding-engine-dart-DartMessenger(DartMessenger.java:313)
W/MIUIScout App(27277): at io.flutter.embedding.engine.dart.DartMessenger$$ExternalSyntheticLambda0.run(D8$$SyntheticClass:0)
W/MIUIScout App(27277): at android.os.Handler.handleCallback(Handler.java:958)
W/MIUIScout App(27277): at android.os.Handler.dispatchMessage(Handler.java:99)
W/MIUIScout App(27277): at android.os.Looper.loopOnce(Looper.java:224)
W/MIUIScout App(27277): at android.os.Looper.loop(Looper.java:318)
W/MIUIScout App(27277): at android.app.ActivityThread.main(ActivityThread.java:8790)
W/MIUIScout App(27277): at java.lang.reflect.Method.invoke(Native Method)
W/MIUIScout App(27277): at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:561)
W/MIUIScout App(27277): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1013)
I/test.vg(27277): Thread[2,tid=32048,WaitingInMainSignalCatcherLoop,Thread*=0xb4000071e7a19000,peer=0x30c02c8,"Signal Catcher"]: reacting to signal 3
I/test.vg(27277):
I/test.vg(27277): Wrote stack traces to tombstoned
W/MIUIScout App(27277): Enter APP_SCOUT_HANG state
W/MIUIScout App(27277): (Current message: duration=5003ms seq=2460 late=6ms h=android.os.Handler c=io.flutter.embedding.engine.dart.DartMessenger$$ExternalSyntheticLambda0)
W/MIUIScout App(27277): Event:APP_SCOUT_HANG Thread:main backtrace:
W/MIUIScout App(27277): at jdk.internal.misc.Unsafe.park(Native Method)
W/MIUIScout App(27277): at java.util.concurrent.locks.LockSupport.park(LockSupport.java:221)
W/MIUIScout App(27277): at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:754)
W/MIUIScout App(27277): at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1099)
W/MIUIScout App(27277): at java.util.concurrent.CountDownLatch.await(CountDownLatch.java:230)
W/MIUIScout App(27277): at org.webrtc.ThreadUtils$2.run(ThreadUtils.java:118)
W/MIUIScout App(27277): at org.webrtc.ThreadUtils.executeUninterruptibly(ThreadUtils.java:68)
W/MIUIScout App(27277): at org.webrtc.ThreadUtils.awaitUninterruptibly(ThreadUtils.java:115)
W/MIUIScout App(27277): at org.webrtc.ThreadUtils.invokeAtFrontUninterruptibly(ThreadUtils.java:180)
W/MIUIScout App(27277): at org.webrtc.ThreadUtils.invokeAtFrontUninterruptibly(ThreadUtils.java:196)
W/MIUIScout App(27277): at com.cloudwebrtc.webrtc.OrientationAwareScreenCapturer.stopCapture(OrientationAwareScreenCapturer.java:140)
W/MIUIScout App(27277): at com.cloudwebrtc.webrtc.GetUserMediaImpl.removeVideoCapturer(GetUserMediaImpl.java:845)
W/MIUIScout App(27277): at com.cloudwebrtc.webrtc.MethodCallHandlerImpl.trackDispose(MethodCallHandlerImpl.java:1735)
W/MIUIScout App(27277): at com.cloudwebrtc.webrtc.MethodCallHandlerImpl.onMethodCall(MethodCallHandlerImpl.java:644)
W/MIUIScout App(27277): at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage(MethodChannel.java:267)
W/MIUIScout App(27277): at io.flutter.embedding.engine.dart.DartMessenger.invokeHandler(DartMessenger.java:286)
W/MIUIScout App(27277): at io.flutter.embedding.engine.dart.DartMessenger.lambda$dispatchMessageToQueue$0$io-flutter-embedding-engine-dart-DartMessenger(DartMessenger.java:313)
W/MIUIScout App(27277): at io.flutter.embedding.engine.dart.DartMessenger$$ExternalSyntheticLambda0.run(D8$$SyntheticClass:0)
W/MIUIScout App(27277): at android.os.Handler.handleCallback(Handler.java:958)
W/MIUIScout App(27277): at android.os.Handler.dispatchMessage(Handler.java:99)
W/MIUIScout App(27277): at android.os.Looper.loopOnce(Looper.java:224)
W/MIUIScout App(27277): at android.os.Looper.loop(Looper.java:318)
W/MIUIScout App(27277): at android.app.ActivityThread.main(ActivityThread.java:8790)
W/MIUIScout App(27277): at java.lang.reflect.Method.invoke(Native Method)
W/MIUIScout App(27277): at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:561)
W/MIUIScout App(27277): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1013)
I/test.vg(27277): Thread[2,tid=32048,WaitingInMainSignalCatcherLoop,Thread*=0xb4000071e7a19000,peer=0x30c02c8,"Signal Catcher"]: reacting to signal 3
I/test.vg(27277):
I/test.vg(27277): Wrote stack traces to tombstoned
W/MIUIScout ANR(27277): AnrScout only want msg within 20s, so stop here
W/MIUIScout ANR(27277): There is no history msgs within 20s
W/MIUIScout ANR(27277): Print Message Id: 0 MessageInfo: { when=-20s10ms what=116 obj=android.os.BinderProxy@4591c6c target=android.app.ActivityThread$H }
W/MIUIScout ANR(27277): Print Message Id: 1 MessageInfo: { when=-20s5ms callback=android.media.ImageReader$1 target=android.media.ImageReader$ListenerHandler }
W/MIUIScout ANR(27277): Print Message Id: 2 MessageInfo: { when=-20s2ms callback=android.media.ImageReader$1 target=android.media.ImageReader$ListenerHandler }
W/MIUIScout ANR(27277): Print Message Id: 3 MessageInfo: { when=-20s2ms callback=android.media.ImageReader$1 target=android.media.ImageReader$ListenerHandler }
W/MIUIScout ANR(27277): Print Message Id: 4 MessageInfo: { when=-20s2ms callback=android.media.ImageReader$1 target=android.media.ImageReader$ListenerHandler }
W/MIUIScout ANR(27277): (Print messages: 5, polling=false, quitting=false)
I/test.vg(27277): Thread[2,tid=32048,WaitingInMainSignalCatcherLoop,Thread*=0xb4000071e7a19000,peer=0x30c02c8,"Signal Catcher"]: reacting to signal 3
I/test.vg(27277):
I/test.vg(27277): Wrote stack traces to tombstoned
I/test.vg(27277): Thread[2,tid=32048,WaitingInMainSignalCatcherLoop,Thread*=0xb4000071e7a19000,peer=0x30c02c8,"Signal Catcher"]: reacting to signal 3
I/test.vg(27277):
I/test.vg(27277): Wrote stack traces to tombstoned
W/MIUIScout ANR(27277): AnrScout only want msg within 20s, so stop here
W/MIUIScout ANR(27277): There is no history msgs within 20s
W/MIUIScout ANR(27277): Print Message Id: 0 MessageInfo: { when=-2m18s882ms what=116 obj=android.os.BinderProxy@4591c6c target=android.app.ActivityThread$H }
W/MIUIScout ANR(27277): Print Message Id: 1 MessageInfo: { when=-2m18s877ms callback=android.media.ImageReader$1 target=android.media.ImageReader$ListenerHandler }
W/MIUIScout ANR(27277): Print Message Id: 2 MessageInfo: { when=-2m18s874ms callback=android.media.ImageReader$1 target=android.media.ImageReader$ListenerHandler }
W/MIUIScout ANR(27277): Print Message Id: 3 MessageInfo: { when=-2m18s874ms callback=android.media.ImageReader$1 target=android.media.ImageReader$ListenerHandler }
W/MIUIScout ANR(27277): Print Message Id: 4 MessageInfo: { when=-2m18s874ms callback=android.media.ImageReader$1 target=android.media.ImageReader$ListenerHandler }
W/MIUIScout ANR(27277): (Print messages: 5, polling=false, quitting=false)
I/test.vg(27277): Thread[2,tid=32048,WaitingInMainSignalCatcherLoop,Thread*=0xb4000071e7a19000,peer=0x30c02c8,"Signal Catcher"]: reacting to signal 3
I/test.vg(27277):
I/test.vg(27277): Wrote stack traces to tombstoned