在我的项目中使用 MobileVLCKit 3.0.0 播放媒体。
所有类型的视频在iOS9和10上成功播放,但 iOS 11视频音频能够收听,但图片无法显示并显示黑屏。
提供以下日志:
2017-09-18 18:26:17.640065+0800 DemoPlayer[39923:369260] creating player instance using shared library
=================================================================
Main Thread Checker: UI API called on a background thread: -[UIView bounds]
PID: 39923, TID: 369593, Thread name: (none), Queue name: com.apple.root.default-qos.overcommit, QoS: 21
Backtrace:
4 DemoPlayer 0x0000000108349895 Open + 405
2017-09-18 18:26:23.490963+0800 DemoPlayer[39923:369593] [reports] Main Thread Checker: UI API called on a background thread: -[UIView bounds]
PID: 39923, TID: 369593, Thread name: (none), Queue name: com.apple.root.default-qos.overcommit, QoS: 21
Backtrace:
4 DemoPlayer 0x0000000108349895 Open + 405
=================================================================
Main Thread Checker: UI API called on a background thread: -[UIView initWithFrame:]
PID: 39923, TID: 369593, Thread name: (none), Queue name: com.apple.root.default-qos.overcommit, QoS: 21
Backtrace:
4 DemoPlayer 0x0000000108349f3b -[VLCOpenGLES2VideoView initWithFrame:zeroCopy:voutDisplay:] + 91
2017-09-18 18:26:23.875359+0800 DemoPlayer[39923:369593] [reports] Main Thread Checker: UI API called on a background thread: -[UIView initWithFrame:]
PID: 39923, TID: 369593, Thread name: (none), Queue name: com.apple.root.default-qos.overcommit, QoS: 21
Backtrace:
4 DemoPlayer 0x0000000108349f3b -[VLCOpenGLES2VideoView initWithFrame:zeroCopy:voutDisplay:] + 91
2017-09-18 18:26:23.959355+0800 DemoPlayer[39923:369593] CoreAnimation: [EAGLContext renderbufferStorage:fromDrawable:] was called from a non-main thread in an implicit transaction! Note that this may be unsafe without an explicit CATransaction or a call to [CATransaction flush].
shader program 1: WARNING: Output of vertex shader 'TexCoord1' not read by fragment shader
WARNING: Output of vertex shader 'TexCoord2' not read by fragment shader
提前感谢。
答案 0 :(得分:6)
最后,得到了解决方案......
现在'MobileVLCKit-Unstable'版本已于9月20日更新为master,UIKit来自后台线程(iOS 11视频播放)问题。
解决方法1:
将pod 'MobileVLCKit-unstable', '3.0.0a38'
添加到podfile并运行pod install
解决方案2:
从以下网址克隆了回购:http://code.videolan.org/videolan/VLCKit.git
打开终端,导航到根目录并执行./buildMobileVLCKit.sh -f
(注意:可能需要1-2小时才能完成)
MobileVLCKit.framework
。答案 1 :(得分:1)
您需要在版本“3.0.0a38”或更高版本中将MobileVLCKit更新为pod'MobileVLCKit-unstable'。这个问题已经解决了。没有办法让库的旧版本以任何方式工作,因为它从后台线程调用UIKit。