7 视频投屏
7.1 概述
点播投屏功能,支持使用 乐播SDK 或 慕享SDK 将视频(加密/非加密),投至大屏设备中进行观看(大屏设备需支持安卓系统,且需下载 “乐播投屏”App 或 慕享SDK配套的“傲软投屏接收端”App)。
其中,加密视频只能通过保利威的投屏模块进行投屏,不支持其他投屏模块(如iPhone自带的AirPlay)进行投屏。
目前暂时不支持AirPlay投屏。
保利威点播已封装好投屏UI、交互及功能,且代码开源。本篇目将介绍投屏模块如何使用。
注:乐播投屏自2022年5月31日起开始收费,幕享投屏自2022年11月24日开始收费
7.2 集成
7.2.1 源码引入
使用点播投屏,需将投屏模块的开源代码文件拖入工程。
开源代码在 Github iOS点播Demo或Gitee iOS点播Demo已包含,可下载 Demo。文件路径为/PolyvVodSDKDemo/Classes/Cast,其中PLVCastManager类在2.17.0版本之前封装的是乐播SDK,而在2.17.0版本之后封装的是慕享投屏SDK,可根据项目情况自由选择。
投屏部分UI代码(横竖屏投屏按钮),位于 PolyvVodSDKDemo/PolyvOpenSourceModule 该目录下。若本身已使用保利威点播播放器皮肤 PLVVodSkinPlayerController
,则无需再次引入。若本身 UI 是自定义,未使用PLVVodSkinPlayerController
,则可参照其中的投屏相关代码,自行创建横竖屏投屏按钮。
7.2.2 Pod 投屏 SDK
投屏模块依赖投屏 SDK,可以使用 Cocoapods 进行快速集成。
7.2.3 获取 AppId、AppSecret
集成投屏模块,需具备与自家项目 BundleID 匹配的 AppId、AppSecret,请咨询 Polyv 技术支持进行获取。
7.2.4 提交AppStore审核时勾选说明
乐播LBLelinkKit投屏库,默认采集IDFA标识。
对于应用本身没有获取IDFA的情况,建议将应用提交至AppStore时按如下方式配置:(以避免被苹果以“应用不含广告功能,但获取了广告标识符IDFA”的理由而拒绝其上架。)
慕享投屏SDK,没有采集IDFA标识,无需特殊配置。
7.3 快速使用
7.3.1 填写 AppId、AppSecret
在 PLVCastManager.h
中填写 AppId
、AppSecre
:
7.3.2 在 AppDelegate 中获取授权
7.3.3 在播放页面初始化
其中,self.view
是播放页面控制器的 view,self.player
是保利威点播播放器 PLVVodPlayerViewController
。
7.3.4 显示投屏按钮
该小节默认用户使用保利威点播播放器皮肤 PLVVodSkinPlayerController
。
在该控制器中搜索 “投屏”,并解开相关的注释代码即可。
若 PLVVodSkinPlayerController
中没有相关投屏代码,请下载最新 iOS 保利威点播 Demo,并进行源码更新。
7.3.5 销毁投屏模块
7.3.6 调试
(1)安装接收端
调试过程,一般需要找个接收端,来测试投屏功能是否正常。可以在安卓手机上下载、安装乐播接收端App 或者 慕享配套的傲软投屏接收端App
(2)切换 WIFI
接收端需要和发送端在同一WIFI网络下。
(3)确认 BundleID
若需安装到自己的真机,进行真机调试。
则需联系技术支持,提供自家的 BundleID,来获得投屏所需的 APPID、SECRETKEY。并填写在PLVCastManager.h
中。
(4)选择投屏设备
打开接收端 App后,接收端 App 会显示当前接收端名字,如“乐播投屏 N1”。
则在发送端 Demo 的播放页面,弹出的设备选择列表中,选中要投屏的设备,即可测试是否能正常投屏。
(5)打印调试
PLVCastManager.m
中,搜索
并改写成 YES,即可打开投屏调试打印。
7.4 其他说明
上述三小节可帮助开发者快速集成及投入使用投屏模块。
具体 API 方法的说明,在源码中已有详细的注释,参考对应头文件即可了解。
若需自定义,或修改部分逻辑、交互,可参考此小节说明。
7.4.1 文件结构
7.4.2 开启投屏 SDK 打印
若需调试投屏 SDK,可在 getCastAuthorization
方法中,调用以下方法打开打印
7.4.3 防录屏开关影响
当前默认逻辑,若播放器 PLVVodPlayerViewController
启用了防录屏 videoCaptureProtect=YES
,则投屏按钮默认不显示、初始化投屏无效。若希望不受防录屏开关影响,可调整以下两处:
(1)PLVVodSkinPlayerController.m
中,搜索并移除该判断条件:
(2)PLVCastBusinessManager.m
的 setup
方法,注释以下判断:
7.4.4 报错 “PLVVodPlayerSkin.h not found”
若没有使用保利威点播播放器皮肤 PLVVodSkinPlayerController
(没拖入 Demo 源码中的 PolyvOpenSourceModule 文件夹)。则集成投屏模块时,可能会出现此报错。此时可将涉及 PLVVodPlayerSkin
的地方注释或移除,并参考 7.4.5 进行投屏按钮的自行创建及对接。
7.4.5 自定义投屏按钮
若没有使用保利威点播播放器皮肤 PLVVodSkinPlayerController
,则使用投屏模块,需要自行创建投屏按钮。按钮的创建本小节不阐述,主要说明如何对接到投屏模块。
(1)PLVCastBusinessManager.h
新增方法
(2)PLVCastBusinessManager.m
新增方法实现
(3)移除原按钮逻辑
搜 PLVVodPlayerSkin
,并注释相应的类引用、对象的使用(castButtonTouchHandler
的实现、skin
的属性调用)
(4)对接自定义投屏按钮事件
PLVCastBusinessManager.m
中,搜listViewShowOrHideEvent
实现。可在isShow
的else
判断结果处,将自定义按钮的selected
状态改为 No。(此处代表设备选择列表已隐藏,投屏按钮不应处于选中状态)自定义按钮被触发时,使用
PLVCastBusinessManager
对象调用刚创建的castButtonTouchHandler
方法
Last updated