fijkplayer
fijkplayer copied to clipboard
使用自己替换的ijkplayer后截图时会闪退
NDK版本:android-ndk-r12b-linux-x86_64
我的编译和替换流程,省略了cd步骤,安卓端: 1.git clone befovy/ijkplayer 2. ./init-android.sh 3. ./init-android-openssl.sh 4. module.sh删除和创建(经过测试,用befovy/ijkplayer自带的module.sh编译出来的.aar也不能截图) 5. ./compile-openssl.sh all 6. ./compile-ffmpeg.sh clean 7. ./compile-ffmpeg.sh all 8. ./gradlew :fijkplayer-full:assembleRelease
.aar的本地依赖经过测试也没有问题,因为使用自带的implementation 'com.befovy.fijkplayer:fijkplayer-full:0.3.7'而不是依赖我自己打的aar包时是可以截图的。
经过调试实际上就是在执行fijkplayer.dart中的 Line255 : _channel.invokeMethod("snapshot"); 时会发生闪退。
错误信息: I/flutter ( 3126): [inf] 2021-11-09 10:16:42.756731 [fijk] FijkPlayer{id:2} takeSnapShot D/IJKMEDIA( 3126): IjkMediaPlayer_snapShot E/IJKMEDIA( 3126): ffp take snap_shot error: -1 D/IJKMEDIA( 3126): FFP_MSG_ERROR: -480 D/AndroidRuntime( 3126): Shutting down VM E/AndroidRuntime( 3126): FATAL EXCEPTION: main E/AndroidRuntime( 3126): Process: com.example.player2, PID: 3126 E/AndroidRuntime( 3126): java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String java.lang.Object.toString()' on a null object reference E/AndroidRuntime( 3126): at com.befovy.fijkplayer.FijkPlayer.handleEvent(FijkPlayer.java:294) E/AndroidRuntime( 3126): at com.befovy.fijkplayer.FijkPlayer.onEvent(FijkPlayer.java:329) E/AndroidRuntime( 3126): at tv.danmaku.ijk.media.player.IjkMediaPlayer$EventHandler.handleMessage(IjkMediaPlayer.java:1070) E/AndroidRuntime( 3126): at com.befovy.fijkplayer.FijkPlayer.handleEvent(FijkPlayer.java:294) E/AndroidRuntime( 3126): at com.befovy.fijkplayer.FijkPlayer.onEvent(FijkPlayer.java:329) E/AndroidRuntime( 3126): at tv.danmaku.ijk.media.player.IjkMediaPlayer$EventHandler.handleMessage(IjkMediaPlayer.java:1070) E/AndroidRuntime( 3126): at android.os.Handler.dispatchMessage(Handler.java:102) E/AndroidRuntime( 3126): at android.os.Looper.loop(Looper.java:154) E/AndroidRuntime( 3126): at android.app.ActivityThread.main(ActivityThread.java:6161) E/AndroidRuntime( 3126): at java.lang.reflect.Method.invoke(Native Method) E/AndroidRuntime( 3126): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:892) E/AndroidRuntime( 3126): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:782) Lost connection to device.