注意:如果你用的原生的播放列表,此文章可能会与您不相符。
讲一下应用场景,相信大家一些视频更多,还有相关很多用Web写的。JS交互。而我用的是dsBridge来做的Web交互。
在命名空间里,后台web点击,后台调用我的打开视频页面的方法如下:
dsBridge跳转block进入如上图中,在web进入WMPageController的子控制器里,我们用navigationController跳转过去,但是会遇到一个问题。那就是传courseId与courseWareId的时候,页面走完了,这个值最后才传过去。因为DS的原因,走的是block方法调用,所以说不像原生的导航跳转。
会造成在WMPageController中头视图中的阿里云播放器横屏出现差错。
web的页面点击后进入WMPageController写的控制器里
播放页面我们都知道在阿里云播放器中有一个代理方法
阿里云播放器代理方法上图中 self.menuItemWidth是宽度,把scrollView隐藏掉。
好吧,有点蠢,这个方法,也是没办法中的办法。😂。
这个顺序。就能解决此问题。不知道有没有其他的好办法,有的话,请联系我,想学习请教一下。
就能解决WMPageController在横屏后在阿里云播放器上面的结果:一下是错位示范
错位后的展示、上图是放大后的错误示范。
调整后的
正确页面呐呐呐
兄弟们,再多说一笔,就是用navigationcontroller在push过来页面全屏,你需要这个
横屏时候需要打开这个 打开横屏 关闭横屏时候需要这个,我是把关闭写在返回按钮代理事件里了。二:区别于上方,我们省劲儿,后台费劲儿的方法,合作开发。
以上是自己写的视频方法,下面我说的是与WMPgeController无关的一种方法,但是却没有问题的一种。就是JS交互用DS写的方法。
思路是:我们创建一个DS里的DWKWebView,然后在webview的头视图上加入阿里云播放器。这样,下面的 “简介”,“章节”,“评论”。都是在web上写的,与我们无关了,点击web,做好JS交互就可以了。
思路:
webview的位置 dwkWebView的位置 代理方法中的判断上面这种JS交互写的方法,全屏没有任何问题,就是不爽的是,评论与章节还有简介等,都是后台开发的。比如,后台点击web调用我们方法,我们得写很多接收类,但也省心,处理都是后台处理,数据不走我们这里。
第一种方法,如果有更好的解决方案,请联系我,谢谢您的观看。
网友评论