You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

iOS 11控制中心触发Broadcast Upload Extension及视频样本获取问题

iOS 11 Broadcast Upload Extension 问题解答

一、如何通过iOS 11控制中心触发Broadcast Upload Extension?

首先得确保你的Broadcast Upload Extension已经正确添加并关联到主APP,之后按以下步骤操作:

  • 调出控制中心:iOS 11非全面屏设备从屏幕底部向上滑动,就能打开控制中心。
  • 添加屏幕录制控件:如果控制中心里没看到屏幕录制按钮,进入「设置」>「控制中心」>「自定义控制」,找到「屏幕录制」并添加到已包含的控件列表。
  • 触发目标扩展:长按(或3D Touch)控制中心里的屏幕录制按钮,会弹出扩展选择列表,找到你的APP对应的Broadcast Upload Extension选项并选中,最后点击「开始录制」,系统就会触发该扩展开始工作。

二、点击开始直播后无法获取视频样本的故障原因排查

碰到这种情况,基本是配置或代码环节出了问题,我整理了几个高频排查方向:

  • 权限配置缺失
    主APP和扩展都需要正确配置权限。主APP的Info.plist要添加NSMicrophoneUsageDescription(如果需要采集音频)和NSScreenRecordingUsageDescription;扩展的Info.plist也要确保权限声明正确,而且iOS 11中屏幕录制权限需要用户主动授权,记得检查主APP是否主动发起了权限请求。
  • Extension配置错误
    检查扩展Info.plist里的NSExtension节点:
    • NSExtensionPointIdentifier必须设置为com.apple.broadcast-services-upload
    • NSExtensionAttributes中的RPBroadcastExtensionVersion要匹配iOS 11的版本要求,若配置了RPBroadcastUploadExtensionSettingsBundleURL,要确保指向的配置文件路径正确。
  • 代码逻辑问题
    重点检查SampleHandler类的processSampleBuffer:withType:方法:有没有正确判断样本类型为RPSampleBufferTypeVideo,有没有错误释放或处理样本缓冲区,导致无法获取有效数据;另外,这个方法里不能执行耗时操作,Extension运行环境有严格时间限制,耗时操作可能会被系统直接终止进程。
  • 系统兼容性限制
    iOS 11的Broadcast Upload Extension有特定限制,比如不支持部分高分辨率或特殊编码的视频,要检查你的视频源是否符合系统要求;同时iOS 11对Extension的内存限制很严格,如果扩展占用内存过高,会被系统强制杀掉,自然无法获取视频样本。
  • 主APP与Extension通信异常
    如果主APP需要给扩展传递配置信息,检查RPBroadcastActivityViewControllerbroadcastConfiguration是否正确设置,有没有传递必要的初始化参数,参数错误可能导致扩展无法正常初始化采集样本。

内容的提问来源于stack exchange,提问作者yingzhuo

火山引擎 最新活动