投屏功能接入

智能视频SDK VideoCreatingSDK

  • 智能视频SDK开发者个人信息保护合规指引
  • 智能视频SDK隐私政策
  • 功能发布记录
  • 播放器SDK
    • SDK&Demo下载
    • 产品简介与下载
    • ios播放器
      • SDK集成
      • 快速开始
      • 简介
      • 版本更新记录
      • 接口速查
      • 快速进阶
      • 功能列表
      • 高级版功能接入
        • 端上超分功能接入
        • VR功能接入
        • 绿幕抠图功能接入
        • 投屏功能接入
        • 全景声功能接入
        • HDR功能接入
        • 超低延时直播功能接入
    • Unity播放器
      • SDK集成
      • 快速开始
      • 简介
      • 版本更新记录
      • 接口速查
      • 快速进阶
    • uniapp播放器
      • SDK集成
      • 快速开始
      • 简介
      • 版本更新记录
      • 快速进阶
    • HarmonyOS NEXT
      • SDK集成
      • 快速开始
      • 简介
      • 版本更新记录
      • 接口速查
      • 快速进阶
    • Andriod播放器
      • SDK集成
      • 快速开始
      • 简介
      • 版本更新记录
      • 接口速查
      • 快速进阶
      • 高级版功能接入
        • 端上超分功能接入
        • VR功能接入
        • 绿幕抠图功能接入
        • 投屏功能接入
        • 全景声功能接入
        • HDR功能接入
        • 超低延时直播功能接入
    • Web 播放器
      • license指引
      • 简介
      • 使用指南
      • 版本更新记录
      • 开发指南
      • 接口速查
        • 事件响应接口
        • 控制接口
  • 图片加载SDK
    • SDK&Demo下载
    • SDK集成
    • 快速开始
    • 版本更新记录
    • 接口速查
    • 产品简介
    • 快速进阶
  • 短视频SDK
    • 产品描述
      • 名词解释
      • 功能说明
      • 产品简介
      • 核心优势
    • SDK体验
      • 能力限制
      • DEMO体验
      • SDK下载
    • 使用指南
      • License申请
    • 常见问题
      • 内容制作类问题
      • 开发类问题
      • 常见问题总览
      • 常见错误码
    • 购买指南
      • 欠费说明
      • 如何购买
      • 产品定价
    • 开发指南
      • IOS开发说明
        • 录制
        • 编辑
        • 字幕
        • 转场
        • 合成
        • 快速接入
        • IOS版本开发接入文档
      • 视频指导
        • 视频指南
      • Android开发说明
        • 录制
        • Android版本开发接入文档
        • 字幕
        • 转场
        • 合成
        • 快速接入
        • 概述
  • 移动直播SDK
    • 产品描述
      • 名词解释
      • 功能说明
      • 产品简介
      • 核心优势
    • SDK体验
      • demo体验
      • SDK下载
    • 使用指南
      • 接入教程
      • License申请
      • License续费
    • 常见问题
      • 内容制作类问题
      • 开发类问题
      • 常见问题总览
      • 常见错误码
    • 购买指南
      • 欠费说明
      • 如何购买
      • 产品定价
    • 开发指南
      • IOS开发说明
        • 互动直播
        • 特效直播
        • 拉流
        • IOS接入概述
        • 超低延迟直播
        • 直播推流
      • Android开发说明
        • 超低延时直播
        • 互动直播
        • 普通直播
        • 特效直播
        • 拉流
        • Android接入概述
        • 推流参数配置
所有文档
menu
没有找到结果,请重新输入

智能视频SDK VideoCreatingSDK

  • 智能视频SDK开发者个人信息保护合规指引
  • 智能视频SDK隐私政策
  • 功能发布记录
  • 播放器SDK
    • SDK&Demo下载
    • 产品简介与下载
    • ios播放器
      • SDK集成
      • 快速开始
      • 简介
      • 版本更新记录
      • 接口速查
      • 快速进阶
      • 功能列表
      • 高级版功能接入
        • 端上超分功能接入
        • VR功能接入
        • 绿幕抠图功能接入
        • 投屏功能接入
        • 全景声功能接入
        • HDR功能接入
        • 超低延时直播功能接入
    • Unity播放器
      • SDK集成
      • 快速开始
      • 简介
      • 版本更新记录
      • 接口速查
      • 快速进阶
    • uniapp播放器
      • SDK集成
      • 快速开始
      • 简介
      • 版本更新记录
      • 快速进阶
    • HarmonyOS NEXT
      • SDK集成
      • 快速开始
      • 简介
      • 版本更新记录
      • 接口速查
      • 快速进阶
    • Andriod播放器
      • SDK集成
      • 快速开始
      • 简介
      • 版本更新记录
      • 接口速查
      • 快速进阶
      • 高级版功能接入
        • 端上超分功能接入
        • VR功能接入
        • 绿幕抠图功能接入
        • 投屏功能接入
        • 全景声功能接入
        • HDR功能接入
        • 超低延时直播功能接入
    • Web 播放器
      • license指引
      • 简介
      • 使用指南
      • 版本更新记录
      • 开发指南
      • 接口速查
        • 事件响应接口
        • 控制接口
  • 图片加载SDK
    • SDK&Demo下载
    • SDK集成
    • 快速开始
    • 版本更新记录
    • 接口速查
    • 产品简介
    • 快速进阶
  • 短视频SDK
    • 产品描述
      • 名词解释
      • 功能说明
      • 产品简介
      • 核心优势
    • SDK体验
      • 能力限制
      • DEMO体验
      • SDK下载
    • 使用指南
      • License申请
    • 常见问题
      • 内容制作类问题
      • 开发类问题
      • 常见问题总览
      • 常见错误码
    • 购买指南
      • 欠费说明
      • 如何购买
      • 产品定价
    • 开发指南
      • IOS开发说明
        • 录制
        • 编辑
        • 字幕
        • 转场
        • 合成
        • 快速接入
        • IOS版本开发接入文档
      • 视频指导
        • 视频指南
      • Android开发说明
        • 录制
        • Android版本开发接入文档
        • 字幕
        • 转场
        • 合成
        • 快速接入
        • 概述
  • 移动直播SDK
    • 产品描述
      • 名词解释
      • 功能说明
      • 产品简介
      • 核心优势
    • SDK体验
      • demo体验
      • SDK下载
    • 使用指南
      • 接入教程
      • License申请
      • License续费
    • 常见问题
      • 内容制作类问题
      • 开发类问题
      • 常见问题总览
      • 常见错误码
    • 购买指南
      • 欠费说明
      • 如何购买
      • 产品定价
    • 开发指南
      • IOS开发说明
        • 互动直播
        • 特效直播
        • 拉流
        • IOS接入概述
        • 超低延迟直播
        • 直播推流
      • Android开发说明
        • 超低延时直播
        • 互动直播
        • 普通直播
        • 特效直播
        • 拉流
        • Android接入概述
        • 推流参数配置
  • 文档中心
  • arrow
  • 智能视频SDKVideoCreatingSDK
  • arrow
  • 播放器SDK
  • arrow
  • ios播放器
  • arrow
  • 高级版功能接入
  • arrow
  • 投屏功能接入
本页目录
  • 接入准备
  • 功能介绍
  • 快速开始
  • 关于组播权限申请的说明
  • 接口说明
  • ProjectionEngine类
  • DeviceUpnp类

投屏功能接入

更新时间:2025-08-22

接入准备

  • 接入投屏功能,需要使用播放器SDK高级版,并申请高级版License。
  • 在frameworks目录下有ProjectionEngine.framewok,将它导入到你的项目中,并设置到Xcode的Link Binary With Libraries选项中

功能介绍

在高级版SDK中,提供了DLNA投屏能力,可以将手机端的视频内容推送到大屏端进行播放,并且支持在手机端远程控制大屏端的媒体播放。该能力由ProjectionEngine组件提供,请确保该组件已集成到你的App中。

快速开始

1.初始化ProjectionEngine组件传入LicenseID

Objective-C
1// 需要传入您申请的高级版证书LicenseID,ID可以在百度智能云控制台查看
2[[ProjectionEngine shareManager] setLicenseID:LICENSE_ID];

2.实现设备发现回调,开始搜索投屏设备,当找到设备时,会利用回调进行通知

Objective-C
1// 设备发现回调,可以在这里将发现到的接收端信息保存起来
2#pragma mark DeviceListenerDelegate
3- (void)OnAddDevice:(DeviceUpnp *) device {
4    NSLog(@"OnAddDevice == %@", device.friendlyName);
5    if (![self.dataArray containsObject:device]) {
6        [self.dataArray addObject:device];
7    }
8}
9
10- (void)OnRemoveDevice:(DeviceUpnp *) device {
11    if ([self.dataArray containsObject:device]) {
12        [self.dataArray removeObject:device];
13    }
14}
15[[ProjectionEngine shareManager] searchDeviceBegin:self];

3.选择设备并发起投屏

Objective-C
1// 从之前保存的接收端信息中选出一个作为发起投屏的目标
2DeviceUpnp *model = self.dataArray[indexPath.row];
3// 分配渲染控制器, playId作为渲染控制器标识,后续的媒体播放控制都基于它完成
4self.playId = [[ProjectionEngine shareManager] distributeProjectionRender:model delegate:self];
5// 设置接收端要播放的媒体url
6NSString *urlStr = [self.delegate getCurrentPlayerUrl];
7[[ProjectionEngine shareManager] setAVTransportURL:self.playId url:urlStr];

4.控制接收端的媒体播放

Objective-C
1// 播放
2[[ProjectionEngine shareManager] play:self.playId speed:1];
3// 暂停
4[[ProjectionEngine shareManager] pause:self.playId];
5// seek, 单位为秒
6[[ProjectionEngine shareManager] seek:self.playId realTime:self.slider.value];
7// 停止
8[[ProjectionEngine shareManager] stop:self.playId];

5.停止搜索设备

Objective-C
1[[ProjectionEngine shareManager] searchDeviceEnd];

6.结束投屏并释放渲染控制器

Objective-C
1[[ProjectionEngine shareManager] stop:self.playId];
2[[ProjectionEngine shareManager] releaseProjectionRender:self.playId];

在播放器SDK Demo中的PlayerControlVC类对上述流程有详细的展示,可以参考。

关于组播权限申请的说明

投屏设备的发现依赖组播消息的发送。自iOS14.5开始,苹果对APP的组播权限增加了控制,需要开发者单独向苹果申请组播权限。申请方式参考苹果官网文档,通过申请后,在APP的.entitlements配置文件中添加如下内容即可。

Plain Text
1<key>com.apple.developer.networking.multicast</key>
2<true/>

接口说明

ProjectionEngine类

接口名 描述
+ (instancetype)shareManager 获取投屏引擎单例
- (void) setLicenseID:(NSString*)licenseId 传入LicenseID
- (NSString*) getVersion 获取投屏引擎版本号
- (void) searchDeviceBegin:(id) deviceObserverDelegate 开始搜索设备,鉴权失败的情况下会抛出异常
- (void) searchDeviceEnd 停止搜索设备
- (int) distributeProjectionRender:(DeviceUpnp*) devicedelegate:(id )renderListener 分配渲染控制器,返回值作为渲染控制器标识
- (void)releaseProjectionRender:(int)renderIndex 释放渲染控制器
- (void)setAVTransportURL:(int)renderIndexurl:(NSString*)url 设置接收端播放的URL
- (void)play:(int)renderIndex speed:(int)realtime 开始接收端播放,当前speed仅支持传入1
- (void)pause:(int)renderIndex 暂停接收端播放
- (void)stop:(int)renderIndex 停止接收端播放
- (void)seek:(int)renderIndex realTime:(float)realtime 控制接收端进度seek,单位为秒
- (int)getDuration:(int)renderIndex 获取媒体流时长
- (int)getCurPos:(int)renderIndex 获取当前播放位置

DeviceUpnp类

属性名 描述
uuid 获取接收端设备ID
friendlyName 获取接收端设备名

事件回调 含义
- (void)OnAddDevice:(DeviceUpnp *) device 发现设备
- (void)OnRemoveDevice:(DeviceUpnp *) device 移除设备

上一篇
绿幕抠图功能接入
下一篇
全景声功能接入