使用 AudioKit for iOS < 11 进行离线音频渲染

2024-01-26

我有 4 个AKPlayer节点,每个节点都连接到一些效果,最后它们混合在一起。 我想离线渲染 iOS > 9.0 的输出,但我不知道如何做。

编辑:我已经实现了渲染并将其分离为 iOS >11 虽然 iOS>11 renderToFile 似乎表现不错,但对于 iOS

这是我的渲染函数:

do{
    if #available(iOS 11, *) {
        let outputFile = try AKAudioFile(forWriting: url, settings: [:])
        _ = AudioKit.engine.isRunning
        try AudioKit.renderToFile(outputFile, duration: karaPlayer.duration, prerender: {
            self.seekTo(time: 0)
        })
    }else {
        let offlineNode = AKOfflineRenderNode(self.mixer)
        AudioKit.output = offlineNode
        offlineNode.internalRenderEnabled = false
        try AudioKit.start()    
        self.seekTo(time: 0)
        try offlineNode.renderToURL(url, duration: self.karaPlayer.duration)
        self.karaPlayer.stop()
        self.voicePlayer.stop()
        offlineNode.internalRenderEnabled = true    
    }
} catch {
    print(error)
    print("Couldn't render output file")
}

混音器的输入是 2 个从“.caf”文件读取的 AKPlayer 节点。


如果你想使用iOS11+,你可以使用AudioKit的渲染到文件:

/// Render output to an AVAudioFile for a duration.
///     - Parameters
///         - audioFile: An file initialized for writing
///         - seconds: Duration to render
///         - prerender: A closure called before rendering starts, use this to start players, set initial parameters, etc...
///
@available(iOS 11.0, macOS 10.13, tvOS 11.0, *)
public func renderToFile(_ audioFile: AVAudioFile, seconds: Double, prerender: (() -> Void)? = nil) throws {

如果您需要支持 iOS9+,请使用 AKOfflineRenderNode 的渲染到 URL 功能:

@available(iOS,已废弃:11) @可用(tvOS,已废弃:11) @available(macOS,已废弃:10.13) 开放类 AKOfflineRenderNode:AKNode、AKComponent、AKInput {

public typealias AKAudioUnitType = AKOfflineRenderAudioUnit
public static let ComponentDescription = AudioComponentDescription(effect: "mnrn")
private var internalAU: AKAudioUnitType?

open var internalRenderEnabled: Bool {
    get { return internalAU!.internalRenderEnabled }
    set { internalAU!.internalRenderEnabled = newValue }
}

open func renderToURL(_ url: URL, seconds: Double, settings: [String: Any]? = nil) throws {
    return try internalAU!.render(toFile: url, seconds: seconds, settings: settings)
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 AudioKit for iOS < 11 进行离线音频渲染 的相关文章

  • 从 NavigationController 中删除 ViewController 后 AVPlayer 继续播放

    因此 我在项目中使用 ARC 当我添加 AVPlayerLayer 时 它工作得很好 但当我从 UINavigationItem 中弹出 UIViewController 时 视频继续在后台播放 有谁知道你会如何处理这个问题 这似乎是一件很
  • 在 Xcode5 中使用 XCTest 时 AFNetworking 导致错误

    我正在使用 Xcode 5 现在刚刚开始对现有项目进行单元测试 为此我添加了CocoaTouch Unit Testing Bundle作为我的项目的目标 目标名称是 MyAppTests 我之前使用添加了 AFNetworking 库Co
  • SwiftUI:动态“列表”中的“切换”在重用时会破坏其布局?

    我试图展现一种动态List行包含Toggle元素 这Toggle最初布局正确 但是当它们滚动进和滚出视图时 即单元格重用时 它们的布局会中断 最小示例代码 import SwiftUI struct SwitchList View var
  • 重叠的装载机圆

    我试图重现苹果为应用程序 活动 制作的重叠圆圈 见下图 如果您使用标准贝塞尔路径 起始 结束位置将仅在 0 到 2PI 之间产生影响 例如 如果您尝试填充 4PI 即使使用一些阴影 则无法模拟重叠加载 如何制作类似于苹果解决方案的东西来创建
  • UITableView 快速获取 titleForHeadersInSection

    我想在 UITableView 的部分中设置标题的标题 语法是什么swift设置该部分中标题的标题 func tableView tableView UITableView titleForHeaderInSection section I
  • 如何解决malloc_error_break?

    我在 iOS 3 0 模拟器上遇到此错误 但在 3 1 3 和 3 2 模拟器上没有遇到此错误 创建符号断点后malloc error break 我在日志中看到了这一点 Session started at 2010 02 13 19 1
  • 在 XCode 7.0.1 中设置 VTK 6.1

    所以 我遇到了问题VTK 可视化工具包 http www vtk org在 Mac OSX 上工作 特别是让它在XCode https developer apple com xcode 我让它工作并将在下面发布这个问题的答案 截至 201
  • 我们能否检测用户是否通过主页按钮或锁定按钮离开而没有监听 darwin 通知?

    我最近向应用程序商店提交了一个新的二进制文件并将其发送以供审核 但它立即被拒绝并显示以下消息 不支持的操作 不允许应用程序监听设备锁定通知 经过一番挖掘后 我发现我们无法使用 com apple springboard lockstate
  • iOS:滚动视图仅在键盘出现后才起作用

    我制作了滚动视图 其中有很多文本字段 我添加了更新的 TPKeyBoardAvoidingScrollView 并将其添加到滚动视图的文件所有者中 我在 h 文件中添加了插座 在 m 文件中综合并添加了行 self view addSubv
  • 如何右对齐 UILabel?

    Remark 实施 myLabel textAlignment right does not解决了我的问题 这不是我所要求的 我想要实现的是让标签对齐右对齐 为了更清楚地说明 这就是如何left对齐外观 就是这样justify对齐外观 if
  • Swift 3 中的 JSON 解析

    有没有人能够找到一种在 Swift 3 中解析 JSON 文件的方法 我已经能够返回数据 但在将数据分解为特定字段时我没有成功 我会发布示例代码 但我已经尝试了很多不同的方法但没有成功 并且没有保存任何代码 我想要解析的基本格式是这样的 提
  • 以弯曲格式显示文本

    我正在寻找以曲线格式绘制一些文本 我使用哪个控件并不重要 UITextField UILabel or UITextView 我只想显示如图所示的文本 仍在寻找解决方案 请帮忙 查看此链接 https nodeload github com
  • 不明白 Swift 中的闭包示例

    我正在尝试了解 swift 和闭包 我被这个例子困住了 numbers map number Int gt Int in let result 3 number return result 什么是 number Int gt Int 它是一
  • Cordova 在 iOS 中显示警告“线程警告:[您的函数]花了 [n] 毫秒”

    THREAD WARNING Console took 81 661865 ms Plugin should use a background thread 在跑步的时候iOS 手机差距项目 对于一些剩余的插件 例如地理位置和文件系统 也是
  • UITableView 滑动删除 iOS 上的手势冲突

    我的手势识别器有问题 我的目标是在表视图中实现使用滑动删除 但我认为其他手势是相互冲突的 我正在使用这个库romonthego REFrostedViewController https github com romaonthego REF
  • 如何将 LC_LOAD_DYLIB 命令插入 Mach-O 二进制文件或将静态库加入现有二进制文件 (IOS)

    这是我第一次在 stackoverflow 上提问 我很绝望 我的任务是加载 dylib 或将静态库加入到 IOS 设备的现有可执行文件中 我将使用static void attribute constructor initialize v
  • 如何使用 Core Graphics 在我的触摸位置绘制一个圆圈?

    新程序员来了 我在尝试使用 Core Graphics 在触摸位置周围绘制描边弧时遇到问题 我有绘制圆圈的方法工作正常 并且我已经测试并在点击屏幕时注册触摸 但是当我尝试在点击时调用绘制圆圈的方法时 我收到错误 CG ContextBlah
  • AWS S3 公共对象与私有对象?

    回到 S3 我的存储桶中有图像的 URL 我将在我的应用程序中呈现这些图像 但它们被设置为私有 当我尝试单击该链接时 它显示 访问被拒绝 当我将链接的设置更改为公共时 它会通过 但是我读到公共访问并不是最安全的事情 所以这本质上是一个由两部
  • ios - Gamekit 的 GKOctree 未找到元素

    我正在尝试使用GKOctree https developer apple com documentation gameplaykit gkoctree用于高效检索 3D 空间中的对象 然而 以下代码似乎没有按预期工作 import Gam
  • iOS 电池监控 Swift

    我已将监控设置为启用 但模拟器和设备中的电池电量仍然为 1 UIDevice currentDevice batteryMonitoringEnabled true var level UIDevice currentDevice batt

随机推荐

  • 确定安装的是哪个版本的 SharePoint?

    确定安装的 SharePoint 版本的最可靠方法是什么 无论是WSS还是MOSS 如果是MOSS 不管是标准的还是企业的 我想以编程方式检测安装的确切 SharePoint 版本 PS 我已经发过了SharePoint SE 上的这个问题
  • Django 多个动态数据库

    我一直在评估 django 并想知道以下是否可能 我已经查看了常规的多个数据库文档 因此请不要向我指出这一点 因为据我所知 尚未提及此用例 如果我错了 我收回它 我想要一个主数据库 其中驻留我的应用程序的大部分模型 但是其中一个应用程序需要
  • 如何整合我的 Xcode 项目文件?

    当我开始开发我的第一个应用程序时 我假设将文件拖到 xcode 中会将它们放入我的项目的实际目录中 并非如此 显然 Xcode 在桌面上引用了它们 有没有一种简单的方法将所有引用的文件复制到项目目录中 我的桌面很乱 使用 Finder 将所
  • Symfony2 - 以编程方式设置记住我 cookie

    我通过新的 simple form 功能实现了自定义身份验证器 main pattern simple form authenticator custom authenticator provider fos userbundle csrf
  • 调试 ASP.NET 会话状态服务器问题

    我们有一个在负载平衡服务器实例上运行的应用程序 因此配置为使用 ASP NET 会话状态服务 该服务在我们的一台数据库服务器上运行 虽然我们应用程序的两个实例都可以成功连接到状态服务器 但会话状态数据的更改并未在它们之间反映出来 FI 如果
  • 为什么原型未定义

    我知道这个问题已经被问过数百次了 但是 我似乎无法理解这个概念prototype 这是我的示例脚本 var config writable true enumerable true configurable true var defineP
  • 更改 Shapefile 的投影

    我正在尝试更改或分配德国形状文件的投影NA to proj longlat datum WGS84 no defs ellps WGS84 towgs84 0 0 0 但不知何故效果不佳 可重现的示例 可以下载Shapefile和其他文件h
  • Cmake:基于变量内容的 add_custom_command 参数

    我想要一个 Cmake 函数来将一些二进制文件复制到特定位置 为此 我有以下函数定义 function collect binaries TARGET NAME DEST DIR set targetsToCopy ARGN set cop
  • 如何使用 Jasmine 模拟另一个模块中所需的模块

    const Client require src http client module exports handler gt const client new Client const locationId client getLocati
  • 用于测试分布式系统的集成测试框架?

    我有一个分布式系统 其组件分布在多个盒子中 他们使用 TCP 或多播相互通信 每个组件相互交换消息 这些基本上是序列化的数据结构 我们有哪些集成测试框架来测试此类系统 我熟悉红宝石 所以基于红宝石的东西肯定会有所帮助 我想有不同的方法可以做
  • 两个变量相减

    我正在使用 Jasper 报告设计我的报告 我有一份收入支出报告 其中我使用变量获得总收入TOT INCOME和使用第二个变量的总费用 TOT EXPENSES 我需要减去两个变量才能得到净利润 所以我创建了第三个变量TOT PROFIT
  • Cordova/Phonegap:WP8.1 导航栏重叠

    我的 cordova 应用程序是为 WP 8 0 Target 构建的 当在没有硬件按钮但有可切换导航栏的 WP8 1 设备上运行它时 HTML 内容会被导航栏重叠 隐藏导航栏时 导航栏的黑色背景将保留并仍然与 HTML 重叠 还可以滚动整
  • 如何在保存打印页面时为文件创建自定义文件名?

    在这里 我通过 window print 事件打印页面 在打印之前 我需要保存此页面 因为我需要在此事件中硬核文件名 a href img class noPrint src Images Print icon png border 0 a
  • 从测试台访问 uvm_config_db 的最佳方式?

    我想在我的顶级测试平台中创建一个时钟 其周期可以通过测试进行控制 我所做的是将周期设置到 uvm config db 中并将其返回到测试台中 我必须输入 1 以确保构建阶段已完成 否则 get 返回错误值 module testbench
  • CakePHP 连接在浏览器中被拒绝

    我正在第一次设置 学习 CakePHP 我正在努力弄清楚为什么我无法通过默认端口 8765 访问我的服务器 我喜欢在 ubuntu 机器上进行开发并远程处理代码 该服务器托管在我本地计算机上的虚拟机上 但我将其称为远程计算机 服务器和我的远
  • lua 垃圾收集器调试输出的最佳方法是什么?

    我需要一个游戏状态对象在 lua 中 不是 C 或与 C 绑定 管理来自我的 C 引擎的灯光 相机 对象 事件 lua 对象是与 c 不同的实体 几乎只是标准的 lua 表 我担心 GC 将如何删除这些对象 因为它们将被动态创建和删除 打开
  • 从真值表创建降序二元决策图 (ROBDD)

    是否有一个软件包 最好是应用程序 而不是库 可以根据给定的真值表 以某种文本格式 创建降序二元决策图 ROBDD 你也可以尝试这个 http formal cs utah edu 8080 pbl BDD php http formal c
  • Pygal 子图(几张图)

    我想在 python 2 7 上使用 Pygal 创建一个仪表板 同一窗口中的多个图 但后者没有 subplot 功能 有没有不使用散景或情节的解决方案 Matplotlib 上的示例 fig axes plt subplots ncols
  • 无法找到此循环的大 O 时间

    我正在尝试查找以下代码片段的 Big O 运行时间 for i 0 i lt n n i for j 0 j lt i j k 我不确定由于 n 的乘法 它是否会是 O n 3 或者只是 O n 2 一些帮助将不胜感激 内部循环将执行 0
  • 使用 AudioKit for iOS < 11 进行离线音频渲染

    我有 4 个AKPlayer节点 每个节点都连接到一些效果 最后它们混合在一起 我想离线渲染 iOS gt 9 0 的输出 但我不知道如何做 编辑 我已经实现了渲染并将其分离为 iOS gt 11 虽然 iOS gt 11 renderTo