[bilibili/ijkplayer]ios 宽大于2048后画面不显示

2024-08-20 949 views
1

比如: self.ijkPlayer.view.frame=CGRectMake(0, 0, 2049, 200); 一旦宽大于2048就没有画面了,但是声音是正常的,我们有个需求是要把视频内容的左半部分全屏,这样我只能把self.ijkPlayer.view的frame设置成屏幕宽的两倍,然后self.ijkPlayer.scalingMode = IJKMPMovieScalingModeAspectFill;来达到这个目的,但是这样在6plus上横屏frame的宽就超过了2048。画面就没有了,请问有解决方案吗?

版本信息: ===== custom modules begin ===== register demuxer : ijklivehook ===== custom modules end ===== av_version_info: ff3.1--ijk0.6.2--20160926--001 ijk_version_info: k0.6.3-6-gb91633d

宽大于2048会有这样的log: [GLES2] after glClear() glError (0x502) [GLES2] after glDrawArrays() glError (0x506) [GLES2] after glClear() glError (0x502) [GLES2] after glDrawArrays() glError (0x506) [GLES2] after glClear() glError (0x502) [GLES2] after glDrawArrays() glError (0x506)

回答

3

@bbcallen 感谢,我好像明白您说的意思了,但是又无从下手,您能给我一两句核心示例代码提示一下吗,万分感谢。

6

@bbcallen 因为以前没解除过opengl,看了一天opengles相关东西,还是搞不定,看来opengl不是短时间内能学好的,不过感谢你的指点。 最后我想问下,ijkPlayer.view的frame宽大于2048后不显示图像是因为硬件限制吗?

3

@bbcallen 我已经解决了,看了两天的OPENGL,修改了renderer.c里面的一些,终于解决了,感谢你指点的方向。

2

Glad to here that.

7

@xiangshun110 我想知道你实现的方案,我也是需要对视频进行特定的地方显示。然后在scalingMode这种上面增加类似安卓的可剪切的mode。

5

@xiangshun110 请问一下你是怎么修改的吗?我也遇到了类似的问题!

0

@xiangshun110 请问一下你是怎么修改的吗?我也遇到了类似的问题!做屏幕镜像需要把视频投到电视上,表现黑屏