大多数浏览器和
Developer App 均支持流媒体播放。
-
AUv3 扩展用户预置
Audio Unit app 扩展让用户能够方便地在任何使用声音的 iOS 或 macOS app 中创建或修改音频,包括库乐队或 Logic Pro X 等音乐制作 app。随着 iOS 13 的推出,您现在可以为可在多个 app 中使用的扩展存储用户预置。
资源
-
下载
大家好 欢迎 收看我们的会议 关于对音频单元用户预设的支持 我叫 Bela Balazs 我是 Core Audio 软件团队的工程师 今天我们将谈一谈 一个新的 API 用于处理 音频单元的预设
首先 我们先讨论一下 什么是预设 以及为什么它们很重要
在一个音频软件情景中 预设就是在给定时间点 关于音频单元的 参数状态的快照 这个快照可以被保存 并在之后恢复
我们已经支持了 工厂预设 这是在 AUAudioUnit 类的一个属性 它也被定义为 AUAudioUnitPreset 的数组 这些工厂预设 由音频单元制造商 加入至音频单元 一个音频单元开发者 可能会在产品中 包含一定数量的预设 以此作为起点 或展示音频单元的性能
现在我们增加了对 用户预设的支持 用户预设可以通过使用这个 新的 userPresets 属性访问 返回值为 AUAudioUnitPreset 数组
这些预设 由用户创建 之后可以修改 音频单元会将预设提供给 所有托管该音频单元的 App 我们有一个新的属性 名为 supportUsePresets 音频单元将其设为真 表示支持用户预设 托管音频单元的 App 在使用新的功能前 需要先检查该属性 这就是加入使用新功能的方法
我们有保存和 删除用户预设的方法 托管音频单元的 App 可以调用 saveUsePreset 方法 将现有的状态保存至预设 或者可以调用 deleteUserPreset 方法 来删除现有的预设 音频单元通过覆盖默认 来实现用户的逻辑 或者也可以 从 AUAudioUnit 基础类中 继承默认实现
这些默认实现 将预设存储到 音频单元扩展的 Application/container 文件夹中
你可以使用 presetState(for userPreset) 方法来恢复 储存在用户预设里的状态
在父类中 也有一个默认实现 但它可以被覆盖 用来适应自定义需求
它会返回一个 可以用来还原 音频单元状态的词典 并且将其存储至 音频单元的 fullStateForDocument 属性
除此之外 我们还新增了一个属性 名为 isLoadedInProcess 你可以将其用来检查 音频单元是否在进程中载入
在进程中载入 是 macOS 特有的性能 主程序可以请求 但如果音频单元没有支持 回调行为就是 在进程外载入音频单元
现在 主程序和音频单元 可以使用这个属性 来验证操作是否成功了 接下来 让我们实际操作一下
现在我们看到的是 更新后的 AUv3 样例代码 在 macOS 和 iOS 上均可用 在这个主 App 中 我加载了 AUv3FilterDemo
当我点击播放时 我们可以听到滤波器的效果 我可以拖动这个曲线 来设定滤波器的截止和共鸣 预设部分 在我的右侧
我们有音频单元的 工厂预设 这里有热烈 欢快和突出 另一个标签则是 用户预设部分 这里有我们之前保存的 初始预设 我也可以保存新的 我可以在两者间转换 一旦我不再需要某个预设 我可以直接把它删除
这就是关于 AUv3 所有的功能 我鼓励你们去看一看
总结一下 为了补充 工厂预设的功能 我们为音频单元的 增加了用户预设的支持 这让用户可以将 最喜欢的声音保存为预设 并将其运用至 每个托管音频单元的 App 中
为了更好利用这些新的功能 音频单元可以 选择加入并使用 我们提供的默认实现 或者也可以覆盖这些方法 实现自定义功能 托管音频单元的 App 向音频单元 查询预设 也可以通过在音频单元上 调用正确的方法来增加新的预设 或者删除现有的预设
在 developer.apple.com 上 你可以通过查看 我们最新更新的 样例代码和这场会议所附的 资源来获取 更多信息 本场展示到此结束 谢谢
-
-
正在查找特定内容?在上方输入一个主题,就能直接跳转到相应的精彩内容。
提交你查询的内容时出现错误。请检查互联网连接,然后再试一次。