ijkplayer icon indicating copy to clipboard operation
ijkplayer copied to clipboard

淦,到底IJKSDLGLView主线程崩溃问题怎么才能够解决呀,网上说的都试过

Open libinok opened this issue 4 years ago • 18 comments

ijk现在又不怎么更新了,每次上线崩溃率第一就是这个ijk定位在的IJKSDLGLView里面,真是烦死,想弃用了,真够拉的

libinok avatar Oct 15 '21 09:10 libinok

哈哈哈 是isApplicationActive这个方法吗?

leeway1208 avatar Oct 17 '21 02:10 leeway1208

哈哈哈 是isApplicationActive这个方法吗?

就是ijk在非主线程操作了UI导致的崩溃,但是网上没有具体全面修复的案例,总会有这方面的问题,我在几个sdlview里面强制在主线程了,但是又会造成卡死,真拿

libinok avatar Oct 18 '21 01:10 libinok

改成这个试试

- (void)isApplicationActive:(void(^)(BOOL isActive)) completion
{

    dispatch_async(dispatch_get_main_queue(), ^{
        switch (self->_applicationState) {
            case IJKSDLGLViewApplicationForegroundState:
                completion(YES);
            case IJKSDLGLViewApplicationBackgroundState:
                completion(NO);
            default: {
                UIApplicationState appState = [UIApplication sharedApplication].applicationState;

                switch (appState) {
                    case UIApplicationStateActive:
                        completion(YES);
                    case UIApplicationStateInactive:
                    case UIApplicationStateBackground:
                    default:
                        completion(NO);
                }
            }
        }

    });
}

leeway1208 avatar Oct 18 '21 01:10 leeway1208

改成这个试试

- (void)isApplicationActive:(void(^)(BOOL isActive)) completion
{

    dispatch_async(dispatch_get_main_queue(), ^{
        switch (self->_applicationState) {
            case IJKSDLGLViewApplicationForegroundState:
                completion(YES);
            case IJKSDLGLViewApplicationBackgroundState:
                completion(NO);
            default: {
                UIApplicationState appState = [UIApplication sharedApplication].applicationState;

                switch (appState) {
                    case UIApplicationStateActive:
                        completion(YES);
                    case UIApplicationStateInactive:
                    case UIApplicationStateBackground:
                    default:
                        completion(NO);
                }
            }
        }

    });
}
  • (void)isApplicationActive:(void(^)(BOOL isActive)) completion {

      switch (self->_applicationState) {
          case IJKSDLGLViewApplicationForegroundState:
              completion(YES);
          case IJKSDLGLViewApplicationBackgroundState:
              completion(NO);
          default: {
    

    dispatch_async(dispatch_get_main_queue(), ^{ UIApplicationState appState = [UIApplication sharedApplication].applicationState;

    }); switch (appState) { case UIApplicationStateActive: completion(YES); case UIApplicationStateInactive: case UIApplicationStateBackground: default: completion(NO); } } }

}

这里只需要加这个就行了,早就试过了

libinok avatar Oct 18 '21 07:10 libinok

#4683

jkplayer目前维护感觉比较慢,估计开源方已倦于5-7年的无休止的更新迭代。MCIJKPlayer是解决xcode 9.0后,系统对于UIKit某些方法必须主线程检查,造成的线程等待问题。

如果你的项目使用的IJKPlayer, 你也遇到线程卡顿问题,那请使用MCIJKPlayer, 集成方法 已经编译好的IJKMediaFramework.framework MCIJKPlayer

poholo avatar Oct 18 '21 10:10 poholo

感觉比较慢,估计

kpi产物,内部用的ijk版本都好新了,这个开源版已经荒废了

m3u8playlist avatar Oct 30 '21 03:10 m3u8playlist

#4683

jkplayer目前维护感觉比较慢,估计开源方已倦于5-7年的无休止的更新迭代。MCIJKPlayer是解决xcode 9.0后,系统对于UIKit某些方法必须主线程检查,造成的线程等待问题。

如果你的项目使用的IJKPlayer, 你也遇到线程卡顿问题,那请使用MCIJKPlayer, 集成方法 已经编译好的IJKMediaFramework.framework MCIJKPlayer

我改了FFmpeg的源码,适配我们自己的拉流解析,所以估计不好使用你这个

libinok avatar Nov 02 '21 10:11 libinok

感觉比较慢,估计

kpi产物,内部用的ijk版本都好新了,这个开源版已经荒废了

估计是,内部肯定一直在更新,不然这么大的视频网站,不可能遗留这么多问题不修复,但是开源的这个,最近几年都基本不动了。

libinok avatar Nov 02 '21 10:11 libinok

经常卡死在 【IJKSDLGLView lockGLActive】,怎么解?

freyzou avatar Dec 22 '21 03:12 freyzou

#4683 jkplayer目前维护感觉比较慢,估计开源方已倦于5-7年的无休止的更新迭代。MCIJKPlayer是解决xcode 9.0后,系统对于UIKit某些方法必须主线程检查,造成的线程等待问题。 如果你的项目使用的IJKPlayer, 你也遇到线程卡顿问题,那请使用MCIJKPlayer, 集成方法 已经编译好的IJKMediaFramework.framework MCIJKPlayer

我改了FFmpeg的源码,适配我们自己的拉流解析,所以估计不好使用你这个

这块代码修改只是IJKSDLGLView, 并未涉及到FFmpeg底层, 不要使用 IJKMediaFramework.framework MCIJKPlayer这个打包好的库, 而是将我修改IJKSDLGLView替换你的IJKSDLGLView,

poholo avatar Jan 06 '22 08:01 poholo

经常卡死在 【IJKSDLGLView lockGLActive】,怎么解?

#4683 pod 'MCIJKPlayer'

poholo avatar Jan 06 '22 08:01 poholo

卡死在【IJKSDLGLView lockGLActive】,怎么解?

卡死在【IJKSDLGLView lockGLActive】,怎么解?

大佬,这个问题解决了吗?

luoshuai-123 avatar Mar 07 '22 11:03 luoshuai-123

卡死在【IJKSDLGLView lockGLActive】,怎么解?

卡死在【IJKSDLGLView lockGLActive】,怎么解?

大佬,这个问题解决了吗?

https://github.com/bilibili/ijkplayer/pull/4683

https://github.com/poholo/MCIJKPlayer pod 'MCIJKPlayer'

poholo avatar Mar 14 '22 03:03 poholo

#4683 jkplayer目前维护感觉比较慢,估计开源方已倦于5-7年的无休止的更新迭代。MCIJKPlayer是解决xcode 9.0后,系统对于UIKit某些方法必须主线程检查,造成的线程等待问题。 如果你的项目使用的IJKPlayer, 你也遇到线程卡顿问题,那请使用MCIJKPlayer, 集成方法 已经编译好的IJKMediaFramework.framework MCIJKPlayer

我改了FFmpeg的源码,适配我们自己的拉流解析,所以估计不好使用你这个

这块代码修改只是IJKSDLGLView, 并未涉及到FFmpeg底层, 不要使用 IJKMediaFramework.framework MCIJKPlayer这个打包好的库, 而是将我修改

IJKSDLGLView替换你的IJKSDLGLView, IJKHanleInMainThread 目前这两种方式我都试过,静态直接播放没问题,一旦有其他操作,对线程有影响,还是有问题

lucking avatar Mar 27 '23 08:03 lucking

ijk现在又不怎么更新了,每次上线崩溃率第一就是这个ijk定位在的IJKSDLGLView里面,真是烦死,想弃用了,真够拉的

IJKSDLGLView-Thread 这样改不会崩,不会卡(但是在2处,首次播放依然显示要在主线程)

IJK sdk 编译 和 问题讨论,加微信群 13022155071

lucking avatar Mar 27 '23 08:03 lucking

ijk现在又不怎么更新了,每次上线崩溃率第一就是这个ijk定位在的IJKSDLGLView里面,真是烦死,想弃用了,真够拉的

IJKSDLGLView-Thread 这样改不会崩,不会卡(但是在2处,首次播放依然显示要在主线程)

IJK sdk 编译 和 问题讨论,加微信群 13022155071

见仁见智,我提供的一种解决方式,在本人项目中表现良好。 ijkplayer源码修改见:https://github.com/poholo/ijkplayer (源码修改见几个commit) ijkplayer打包好的库:https://github.com/poholo/MCIJKPlayer pod 'MCIJKPlayer' MCPlayerKit通用测试库:https://github.com/poholo/MCPlayerKit (里面有现成的Demo) 有问题提pr,本人有时间会和大家探讨,感谢

poholo avatar Mar 28 '23 04:03 poholo

ijk现在又不怎么更新了,每次上线崩溃率第一就是这个ijk定位在的IJKSDLGLView里面,真是烦死,想弃用了,真够拉的

IJKSDLGLView-Thread 这样改不会崩,不会卡(但是在2处,首次播放依然显示要在主线程) IJK sdk 编译 和 问题讨论,加微信群 13022155071

见仁见智,我提供的一种解决方式,在本人项目中表现良好。 ijkplayer源码修改见:https://github.com/poholo/ijkplayer (源码修改见几个commit) ijkplayer打包好的库:https://github.com/poholo/MCIJKPlayer pod 'MCIJKPlayer' MCPlayerKit通用测试库:https://github.com/poholo/MCPlayerKit (里面有现成的Demo) 有问题提pr,本人有时间会和大家探讨,感谢

可以,我直接用你的IJKSDLGLView替换了官方的,没有卡主线程问题了,但是我只是播放rtsp流,没有拖动的操作

cikichen avatar Mar 14 '24 10:03 cikichen

ijk现在又不怎么更新了,每次上线崩溃率第一就是这个ijk定位在的IJKSDLGLView里面,真是烦死,想弃用了,真够拉的

IJKSDLGLView-Thread 这样改不会崩,不会卡(但是在2处,首次播放依然显示要在主线程) IJK sdk 编译 和 问题讨论,加微信群 13022155071

见仁见智,我提供的一种解决方式,在本人项目中表现良好。 ijkplayer源码修改见:https://github.com/poholo/ijkplayer (源码修改见几个commit) ijkplayer打包好的库:https://github.com/poholo/MCIJKPlayer pod 'MCIJKPlayer' MCPlayerKit通用测试库:https://github.com/poholo/MCPlayerKit (里面有现成的Demo) 有问题提pr,本人有时间会和大家探讨,感谢

可以,我直接用你的IJKSDLGLView替换了官方的,没有卡主线程问题了,但是我只是播放rtsp流,没有拖动的操作

RTSP 是直播流吧,直播流就没法seek了,还是你们的RTSP支持seek?

poholo avatar May 21 '24 08:05 poholo