iOS 16 FairPlay 变化

2024-04-13

FairPlay 逻辑有任何变化吗?我的应用程序具有受 FairPlay 保护的视频和音频,它们在 iOS 15.7 之前完美运行,但在 iOS 16 中

makeStreamingContentKeyRequestData is throwing me following error :

Error Domain=CoreMediaErrorDomain Code=-19152 "(null)"
Error Domain=AVFoundationErrorDomain Code=-11800 "The operation could not be completed"
UserInfo={NSLocalizedFailureReason=An unknown error occurred (-19156), NSLocalizedDescription=The operation could not be completed, 
NSUnderlyingError=0x280deac10 {Error Domain=NSOSStatusErrorDomain Code=-19156 "(null)"}}

造成这种情况的可能原因和解决方案是什么?

提前致谢


我们正在使用AVContentKeySession下载时遇到同样的错误,已修复。对于我们的案例,问题如下。

观察到的问题:

  1. 在iOS16.0.3上,下载过程中应用程序首次触发“许可证请求”12秒后,AVFoundation框架将再次触发“许可证请求” ("contentKeySession(_ session: AVContentKeySession, didProvide keyRequest: AVContentKeyRequest)" 又被叫了),然后报错“-19152“wad通过框架快速报告。 错误日志: contentKeySession(_:contentKeyRequest:didFailWithError:),行:XXX, 消息:XXX,网址:XXX,错误为 Domain=CoreMediaErrorDomain 代码=-19152“(空)”
  2. 在iOS15.6.1上,触发“许可证请求”后 通过应用程序在下载过程中,框架不会再次触发任何“许可证请求”。

根本原因:iOS 框架 API(AVContentKeySession 和 AVPersistableContentKeyRequest)行为在 iOS16 上发生了变化。

解决方案: Add “keyRequest.processContentKeyResponse(keyResponse)”在 iOS16+ 上下载 CKC 后。

  • 在iOS11 - iOS15上,我们下载后并没有调用它,而是只在本地保存perpetualKeyData,并在播放时调用processContentKeyResponse。这在这些 iOS 版本上一直运行良好。
  • 但在iOS16及以上版本(目前为止iOS16.1 Beta4),旧流程会触发框架错误。所以我们添加了这个修复。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

iOS 16 FairPlay 变化 的相关文章

  • iOS 11 安全区域布局指南向后兼容性

    启用安全区域布局指南是否与 iOS 11 以下版本兼容 我设法使用新的安全区域布局指南并保持与 iOS 9 和 iOS 10 的向后兼容性 编辑 正如 NickEntin 的评论所指出的 此实现将假定存在状态栏 但在 iPhone X 的横
  • iOS中的performSelector有什么用

    的作用是什么执行选择器 比较 self btnClicked and self performSelector selector btnClicked void btnClicked NSLog Method Called 两者都对我来说工
  • iOS 8 中的 UISplitViewController 状态恢复

    在 iOS 8 上 UISplitViewController 似乎可以保存和恢复其子视图的状态 例如 主视图是否隐藏 这是不可取的 因为我的应用程序应该始终以横向方式显示主视图 并始终以纵向方式隐藏它 如果用户以横向模式关闭应用程序 保存
  • 使用 Cocoa 获取无法安装的驱动器列表

    我想获取在 OS X 下使用 Cocoa Objective C 无法安装 弹出的驱动器列表 我希望 NSWorkspace getFileSystemInfoForPath 能帮助我 NSArray listOfMedia NSWorks
  • 如何从代码隐藏中设置 CarouselView 的项目?

    我有一个 CarouselView 它绑定到图像的 ItemsSource 但我想通过更改 CarouselView 的索引来更改当前显示的图像 我尝试使用 CarouselView Position 作为必须选择的元素的索引 但不幸的是这
  • 在后台任务中安排通知

    我正在为 iOS 开发一个日历 闹钟应用程序 它与网络服务器同步 当在服务器上添加活动时 会发出推送通知 以便 iOS 客户端可以获取新数据 并根据需要更新和安排下一次警报的时间 本地通知 但这仅在应用程序在客户端打开时才有效 我希望客户端
  • Swift 3.0 Pin 颜色注释在 MapView 中没有改变

    我有兴趣根据案例场景更改注释的图钉颜色 在一个函数中 我发送了一个数组 用于确定引脚注释的颜色 到目前为止 我已经设置了一个名为 ColorPointAnnotation 的子类 它将确定 pinColor 然后 在 switch 语句中
  • 将 Xcode 的测试类助理编辑器与 Swift 类结合使用

    在 Xcode 中工作时 在助理编辑器中提取单元测试用例通常会很好 目前 我一直在手动选择测试文件 但我看到助理编辑器有一个选项Test Classes 我试图让这个选项自动提取我的测试文件 但我似乎无法让它工作 是否需要某种配置 它不适用
  • 如何使用 Swift 获取 YouTube 频道的所有播放列表?

    我的问题不是关于从一般频道检索视频 我只想获取该频道创建的所有 播放列表 并检索每个播放列表的缩略图 标题和视频数量 这是一个 YouTube 频道示例 正如您所看到的 有很多已创建的播放列表 截至目前 我只能获取某个频道最新上传的视频 在
  • 线程 1:信号 SIGABRT - AppDelegate.h

    main m Journey Created by Julian Buscema on 2014 07 13 Copyright c 2014 Julian Buscema All rights reserved import
  • FireMonkey iOS RAD Studio XE2 - 在从 URL 加载的表单上显示图像

    是否可以将 TImage 放置在 iOS 的 FMX 表单上 并将图像 jpg 从 URL 加载到此 TImage 中以在 iOS 应用程序中显示 我尝试过但没有成功 任何正确方向的提示或指出都会受到赞赏 将 TButton TImageC
  • 混合静态和动态 UITableViewController 内容会导致 NSRangeException

    我一直在寻找这个错误 并找到了一些具有类似行为的帖子 但没有解决问题的解决方案 我有一个 UITableViewController 在 SB 中声明为静态 它具有以下部分 第 0 部分 配方 是静态的 有 4 个单元格 第 1 部分 口味
  • 如何将音乐从我的应用程序切换到 iPod

    我在用MusicPlayerController我的应用程序中的对象来播放音乐 我知道当 iPhone ipod 应用程序终止时 可以继续播放我的应用程序音乐 我该怎么做 这涉及到一些事情 您必须在两种音乐播放器之间进行选择 应用程序音乐播
  • iOS WKWebView.scrollView委托导致BAD_ACCESS

    我的 viewController 有一个 UIView 属性 其中包含一个 WKWebView 我将 WKWebView rollView 委托设置为我的 viewController 它是我的 UIView 子类的公共函数 并在我的 v
  • 在 Instruments 中查找内存泄漏行

    我是 iOS 中的仪器新手 我正在尝试使用 Xcode 4 5 2 并按照本教程查找仪器中的内存泄漏 http soulwithmobiletechnology blogspot sg 2011 04 how to check memory
  • 对使用phonegap和钛的质疑[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 最近我听说了 PhoneGap 和 Titanium 移动网络应用程序的开发 我分析了这两个 Web 应用程序 并了解了如何使用它们以
  • 自定义 MKAnnotationView - 如何捕获触摸而不忽略标注?

    我有一个自定义 MKAnnotationView 子类 它完全按照我想要的方式显示视图 在那个视图中 我有一个按钮 我想捕获按钮上的事件来执行操作 这很好用 但是 我不希望标注被忽略或消失 基本上 触摸标注中的按钮将开始播放声音 但我想保留
  • 在 iOS 上从 GPS 获取时间

    我正在开发一个跟踪器应用程序 该应用程序需要高精度地了解设备位置 即它使用位置服务并忽略水平精度低于 20 米的位置 CLLocation没有明确声明是否通过 GPS 确定 但是 如果水平精度为 20 米或更好 则可以认为它是来自 GPS
  • 在 UIMenuItem 上设置accessibilityLabel

    我正在尝试设置accessibilityLabel of a UIMenuItem而且似乎没有效果 无论如何 VoiceOver 只是读取项目的标题 let foo UIMenuItem title foo action selector
  • ActionScript、NetStream.Play.Failed iOS AIR 移动设备

    我正在尝试以类似于 Tiberiu Ionu Stan http stackoverflow com questions 2036107 aac mp4 not working in actionscript 3s netstream 的方

随机推荐

  • 尝试使用 sqlcmd(从 Ubuntu 命令行)连接到 SQL Server 时出错?

    我在尝试连接时发现一些问题SQL服务器来自 Ubuntu 机器的实例 使用sqlcmd 所以我安装了sqlcmd正如这里所解释的 https learn microsoft com it it sql linux sql server li
  • 指定 PyYAML 转储部分的样式 (II):序列

    这是一个后续问题指定 PyYAML 转储部分的样式 https stackoverflow com questions 14000893 specifying styles for portions of a pyyaml dump 考虑以
  • 如何在java中将事件插入事件调度线程队列的开头?

    我已经知道怎么做了事件调度线程 http docs oracle com javase tutorial uiswing concurrency index html作品 如果事件调度线程中存在如下所示的短事件和长事件 则应用程序无法响应
  • RangeError:使用 valueChanges.subscribe 时超出最大调用堆栈大小

    我正在使用带有反应式表单的 Angular 5 并且需要使用 valueChanges 来动态禁用所需的验证 组件类 export class UserEditor implements OnInit public userForm For
  • 如何将 Gradle 项目外部依赖项下载到特定文件夹?

    我想将依赖项下载到构建中的特定文件夹 作为构建过程的一部分 例如构建 库 我找不到说明如何执行此操作的文档 我确信我缺少一种简单的方法来执行此操作 我当前 缩短的 build gradle 如下 该项目正确编译并执行测试 apply plu
  • git push 忽略 cocoapods

    我开发 iOS 应用程序已有几个月了 现在 我想将其推送到 bitBucket 上 问题是 git push 忽略与 cocoapods 相关的所有文件 例如 project xcworkspace Podfile Podfile lock
  • 在页面中多次获取相同数据的最佳方法是什么?

    我想在多次从 MySQL 获取数据的页面中显示相同的数据 首先我想使用MySQL从MySQL获取数据mysql fetch assoc 在 while 循环中 然后将其显示为菜单 第二次我想在页脚中显示与站点地图相同的数据 我现在正在打电话
  • Ember Data:重写 Save 方法

    您好 Ember 数据世界 我一直在研究自定义适配器 试图找出如何覆盖保存方法 根据我的理解 你似乎需要做这样的事情 DS RESTAdapter extend save function return this super 但是 当我尝试
  • Bootstrap 4 多个固定顶部导航栏

    Bootstrap 4 中是否可以有多个固定顶部导航栏相互显示 1 目前覆盖了另一个 这不是我想要的 是的 这是可能的 但你必须相应地定位第二个 导航栏的高度约为 56 像素 fixed top 2 margin top 56px body
  • 阿迪和苏比之间到底是什么“关系”?

    我应该回答这个问题 经过一番研究后发现 add 和 sub 具有相同的操作码 仅在功能领域有所不同 这是答案还是其他什么 Update Nios II CPU 手册中提供了它 subi subtract immediate Operatio
  • 如何配置 jshint 才不会出现错误“之前换行错误”?

    它给了我错误 之前的错误换行 因为我有如下代码 var one 1 two 2 three 3 如果我把 在行的末尾而不是下一行的开头 它不会抱怨 但我想这样编码 有什么办法可以让它不显示此警告吗 我虽然看了JSHint 的选项 http
  • 使用 MediaCodec 截断视频

    我使用Android MediaCodec库对视频文件进行转码 主要是改变分辨率示例代码在这里 https stackoverflow com questions 29943121 mediamuxer video compression
  • sc.textFile 之后的 zipWithIndex 会给出正确的行号吗?

    说如果我这样做 如下所示 val rdd sc textFile someFile txt val rddWithLines rdd zipWithIndex zipWithIndex 添加的索引是否对应于输入文件中的行号 第一行当然是 0
  • Powershell:递归替换目录的选择子文件中的字符串

    我在 Windows XP 上使用 Powershell 并尝试编写一个命令来 1 read all bat cfg and config files 2 replace a string it s actually the path th
  • 尝试对变量列表进行所有操作组合

    我有一个值列表 例如 values 1 2 3 4 我想尝试此列表中的所有组合 例如 1 2 1 3 1 4 1 2 1 3 1 4 1 2 3 1 2 4 1 3 4 etc 以最简洁的方式获得所有这些可能的操作组合的最直接的方法是什么
  • Mongodb子文档之间的多对多关系

    TL DR 想象一下第一个 match 阶段给了你几个文档 但你想要refine他们在里面 就像 redact做 但问题是你的子文档有关系 而你想要 where就像他们之间的检查一样 怎样才能做到这一点呢 我无法 unwind 因为它会导致
  • RxJava 中的 n 元笛卡尔积

    现在我持有一个Observable
  • 算术恒等式和 EFLAGS

    因为 x not x 1 意味着 a b a not b 1 那么 sub rax rcx 相当于 mov temp rcx not temp add rax temp add rax 1 其中 temp 是一些被认为是易失性的寄存器 换句
  • 在“UITableView”中选择行时调用新视图

    我目前正在编写我的第一个 iPhone 应用程序 但遇到了问题 我有一个包含 UITableView 的视图 这是我第一次尝试这样做 这是我试图实现的行为 当用户选择其中一行时 我希望调用一个新视图 将用户带到另一个页面 显示参考他们选择的
  • iOS 16 FairPlay 变化

    FairPlay 逻辑有任何变化吗 我的应用程序具有受 FairPlay 保护的视频和音频 它们在 iOS 15 7 之前完美运行 但在 iOS 16 中 makeStreamingContentKeyRequestData is thro