jhomlala / betterplayer

Better video player for Flutter, with multiple configuration options. Solving typical use cases!
Apache License 2.0
919 stars 981 forks source link

[BUG] #1112

Open omarnasseriustudyorg opened 1 year ago

omarnasseriustudyorg commented 1 year ago

Hello friends, I was using better player and everything was good and suddenly flutter show this error any one can help me

E/MethodChannel#better_player_channel: Failed to handle method call java.lang.NullPointerException: MediaSource.Factory#setDrmSessionManagerProvider no longer handles null by instantiating a new DefaultDrmSessionManagerProvider. Explicitly construct and pass an instance in order to retain the old behavior. at com.google.android.exoplayer2.util.Assertions.checkNotNull(Assertions.java:174) at com.google.android.exoplayer2.source.ProgressiveMediaSource$Factory.setDrmSessionManagerProvider(ProgressiveMediaSource.java:186) at com.jhomlala.better_player.BetterPlayer.buildMediaSource(BetterPlayer.kt:430) at com.jhomlala.better_player.BetterPlayer.setDataSource(BetterPlayer.kt:196) at com.jhomlala.better_player.BetterPlayerPlugin.setDataSource(BetterPlayerPlugin.kt:277) at com.jhomlala.better_player.BetterPlayerPlugin.onMethodCall(BetterPlayerPlugin.kt:151) at com.jhomlala.better_player.BetterPlayerPlugin.onMethodCall(BetterPlayerPlugin.kt:138) at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage(MethodChannel.java:262) at io.flutter.embedding.engine.dart.DartMessenger.invokeHandler(DartMessenger.java:295) 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:938) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:246) at android.app.ActivityThread.main(ActivityThread.java:8633) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:602) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1130) E/flutter: [ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: PlatformException(error, MediaSource.Factory#setDrmSessionManagerProvider no longer handles null by instantiating a new DefaultDrmSessionManagerProvider. Explicitly construct and pass an instance in order to retain the old behavior., null, java.lang.NullPointerException: MediaSource.Factory#setDrmSessionManagerProvider no longer handles null by instantiating a new DefaultDrmSessionManagerProvider. Explicitly construct and pass an instance in order to retain the old behavior. at com.google.android.exoplayer2.util.Assertions.checkNotNull(Assertions.java:174) at com.google.android.exoplayer2.source.ProgressiveMediaSource$Factory.setDrmSessionManagerProvider(ProgressiveMediaSource.java:186) at com.jhomlala.better_player.BetterPlayer.buildMediaSource(BetterPlayer.kt:430) at com.jhomlala.better_player.BetterPlayer.setDataSource(BetterPlayer.kt:196) at com.jhomlala.better_player.BetterPlayerPlugin.setDataSource(BetterPlayerPlugin.kt:277) at com.jhomlala.better_player.BetterPlayerPlugin.onMethodCall(BetterPlayerPlugin.kt:151) at com.jhomlala.better_player.BetterPlayerPlugin.onMethodCall(BetterPlayerPlugin.kt:138) at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage(MethodChannel.java:262) at io.flutter.embedding.engine.dart.DartMessenger.invokeHandler(DartMessenger.java:295) 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:938) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:246) at android.app.ActivityThread.main(ActivityThread.java:8633) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:602) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1130) )

0 StandardMethodCodec.decodeEnvelope (package:flutter/src/services/message_codecs.dart:653:7)

#1      MethodChannel._invokeMethod (package:flutter/src/services/platform_channel.dart:296:18)
<asynchronous suspension>
#2      MethodChannelVideoPlayer.setDataSource (package:better_player/src/video_player/method_channel_video_player.dart:118:5)
<asynchronous suspension>
#3      VideoPlayerController._setDataSource (package:better_player/src/video_player/video_player.dart:408:5)
<asynchronous suspension>
#4      BetterPlayerController._setupDataSource (package:better_player/src/core/better_player_controller.dart:444:9)
<asynchronous suspension>
#5      BetterPlayerController.setupDataSource (package:better_player/src/core/better_player_controller.dart:274:5)
<asynchronous suspension>
omarnasseriustudyorg commented 1 year ago

Any one can help me

ChetanKhanna767 commented 1 year ago

I am facing the same issue, so please let me know if you find anything

Any one can help me

omarnasseriustudyorg commented 1 year ago

I have solved this problem and write the solution in this link https://github.com/jhomlala/betterplayer/issues/1113#issuecomment-1297537760

tintran-dev commented 1 year ago

@omarnasseriustudyorg You can see the problem solved here: https://github.com/jhomlala/betterplayer/pull/1085