MobileVLCKit播放器在iOS 11上显示黑屏

时间:2017-09-18 10:23:27

标签: ios mobile vlc ios11 xcode9

在我的项目中使用 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

提前感谢。

2 个答案:

答案 0 :(得分:6)

最后,得到了解决方案......

现在'MobileVLCKit-Unstable'版本已于9月20日更新为master,UIKit来自后台线程(iOS 11视频播放)问题。

解决方法1:

pod 'MobileVLCKit-unstable', '3.0.0a38'添加到podfile并运行pod install

解决方案2:

  1. 从以下网址克隆了回购:http://code.videolan.org/videolan/VLCKit.git

  2. 打开终端,导航到根目录并执行./buildMobileVLCKit.sh -f(注意:可能需要1-2小时才能完成)

  3. 成功完成后,将在VLCKit / build /文件夹位置生成MobileVLCKit.framework
  4. 只需将其拖到您的项目中即可。

答案 1 :(得分:1)

您需要在版本“3.0.0a38”或更高版本中将MobileVLCKit更新为pod'MobileVLCKit-unstable'。这个问题已经解决了。没有办法让库的旧版本以任何方式工作,因为它从后台线程调用UIKit。