使用AudioKit开发-基础

本教程介绍了如何在iOS应用中使用AudioKit框架。 目标读者是经验丰富的iOS开发人员,对AudioKit几乎没有经验。

仅使用基本的AudioKit功能。 实际上,仅使用AudioKit Basics游乐场中演示的功能。 在使用本教程之前,与该游乐场一起玩可能是一个好主意。

涵盖了教程中的iOS细节,但没有详细信息。 嵌入式图形,源代码和GitHub项目应提供足够的细节。 本教程重点介绍Audikit集成,因此忽略了某些iOS特定信息(例如AudoLayout)。

1先决条件

假定熟悉使用Xcode,Swift和CocoaPods的iOS应用程序开发。

本教程练习了Basics游乐场中演示的许多功能。 因此,最好先穿过那个操场。 游乐场可以作为单独的zip文件下载,也可以克隆GitHub存储库。 可以在AudioKit下载页面上找到说明。

2创建项目

2.1创建一个新的Xcode项目

使用Single View App模板创建一个新的iOS Xcode项目(New / Project…),并提供适当的选项。

  • 项目名称= AudioKit-Basics-Tutorial
  • 团队=无
  • 语言= Swift

2.2项目设置

部署信息

AudioKit iOS项目(AudioKit / AudioKit / iOS /)是使用9.0的部署目标构建的,因此我们将执行相同的操作。

  • 部署目标= 9.0

2.3运行项目

生成项目并在Simulator(iPhone XR)中运行它,以确保到目前为止没有错误。 在运行的应用程序中应该可以看到一个空白视图,见图2.3。 此时的项目状态反映为GitHub上的v1.0版本。

3将AudioKit框架添加到项目中

可以使用包管理器(CocoaPods或Carthage)将AudioKit作为预编译框架或源添加到项目中。 有关这些选项的更多信息,请参考下载和框架页面。

3.1将AudioKit添加为CocoaPod。

本教程将AudioKit框架添加为CocoaPod,因此必须在开发计算机上安装CocoaPods。 所需步骤包括:

  • 使用pod init创建默认的Podfile。
  • 编辑Podfile,将AudioKit框架添加到项目中。
  • 使用pod install安装AudioKit依赖项。
  • 确保使用pod更新安装了最新版本的框架

有关更多详细信息,请参考CocoaPods和AudioKit Frameworks网站。 编辑后的Podfile的内容如下所示。

 平台:ios,“ 9.0” 
 目标“ AudioKit-Basics” 
use_frameworks!
  pod'AudioKit','〜> 4.0' 
结束

3.2运行项目

使用CocoaPods安装框架后,打开Xcode工作区(不是项目),并通过构建/运行应用程序来验证进度。 目标设置通常应与图3.2中所示的设置相匹配。 结果应为与以前相同的空白视图,见图2.3。 此时的项目状态反映在GitHub上的v2.0版本中。

4构建应用

4.1更改初始视图控制器

由于该项目是使用“ Single View App”模板创建的,因此该项目包含一个UIViewController。 将该UIViewController替换为UITableViewController。 这可以通过以下步骤完成:

将UITableViewContoller类添加到项目

  • 右键单击项目文件夹,然后选择“ New File…”
  • 在模板页面上,选择“ iOS”,“ Cocoa Touch Class”,然后选择“下一步”
  • 在选项页面上,验证以下选项,然后选择“下一步”
    类= TableViewController
    = UITableViewController的子类
    语言= Swift
  • 在文件管理器页面中,选择“创建”

将UITableViewController添加到情节提要

  • 打开Main.storyboard。
  • 将一个表视图控制器添加到情节提要。
  • 在Table View Controller的Identity Inspector中,设置Class = TableViewController。
    在表视图控制器的属性检查器中,选择“是初始视图控制器”。

删除原始的UIViewController

  • 从情节提要中删除View Controller。
  • 右键单击ViewController.swift,然后选择“删除”。

Xcode项目如图4.1a所示。 在此阶段运行该应用程序将产生一个空白表视图控制器,如图4.1b所示。

清理TableViewController类

  • 从TableViewController.swift中删除所有样板代码。
  • 我们将使用静态表视图,因此删除数据源功能;
    numberOfSections(in 🙂
    tableView(_:numberOfRowsInSection 🙂

4.2添加AudioKit功能

本教程将使用AudioKit构造具有两个振荡器的简单声音生成器。 所有代码都将添加到TableViewController.swift。

导入AudioKit

 导入AudioKit 

添加振荡器和混频器的属性

  var振荡器1 = AKOscillator() 
var振荡器2 = AKOscillator()
var混合器= AKMixer()

实例化并连接组件

用随机频率实例化两个振荡器,并通过混频器进行组合。 启动AudioKit引擎,然后打开两个振荡器。

 振荡器1.frequency =随机(in:220…880) 

振荡器2.frequency =随机(in:220…880)

混频器= AKMixer(振荡器1,振荡器2)
mixer.volume = 0.5

AudioKit.output =混音器

做{
尝试AudioKit.start()
}
赶上{
AKLog(“ AudioKit没有启动!”)
}

振荡器1.start()
振荡器2.start()

在此阶段运行项目将生成两个具有不同频率的音频,以及与以前相同的空表视图控制器。

4.3添加UI控件

下一步是为AudioKit组件添加UI控件。 尽管AudioKit包含一个UI库,但本教程将使用UIKIt控件。

为静态内容配置Table View Controller

  • 在情节提要板编辑器中,展开“表视图控制器”,然后选择“表视图”组件。 使用属性检查器集;
    内容=静态单元格
    区段= 1
  • 展开表格视图,然后选择表格视图部分。 组;
    行数= 3

建立振荡器1的控制单元

  • 展开“表格视图”部分并选择第一个“表格视图”单元格,然后显示“大小”检查器。 组;
    行高= 88
  • 该单元将包括一个UISwitch,一个UISlider和三个UILable。 将这些组件排列在单元格中,使其看起来像;

添加插座和动作

添加以下出口属性和动作功能。 然后将UI组件适当地连接到这些出口和操作。

  @IBOutlet弱var振荡器1OnOffControl:UISwitch! 
@IBOutlet弱var振荡器1FrequencyControl:UISlider!
  @IBAction函数振荡器1OnOffAction(_发送方:UISwitch){ 
sender.isOn吗? 振荡器1.start():振荡器1.stop()
}

@IBAction函数振荡器1FrequencyAction(_发送方:UISlider){
振荡器1.frequency = Double(发送器值)
}

添加viewWillAppear(_ :)函数

UI组件将在viewWillAppear(_ :)函数中初始化。

 覆盖func viewWillAppear(_动画:布尔){ 
super.viewWillAppear(动画)

振荡器1OnOffControl.setOn(oscillator1.isStarted,动画:false)
振荡器1FrequencyControl.value =浮动(振荡器1.frequency)
}

继续构建/运行项目,并验证新添加的控件可用于控制振荡器1。

建立振荡器2的控制单元

复制上面的步骤,为单元2中的振荡器2添加UI控件。现在运行项目将允许您控制两个振荡器。

建立调音台控件

第三个单元将包含混合器控件。 这将包括三个UISliders和四个UILable。 将这些组件排列在单元格中,使其看起来像;

添加调音台出口和动作

添加以下出口属性和动作功能。 然后将UI组件适当地连接到这些出口和操作。

  @IBOutlet弱var振荡器1VolumeControl:UISlider! 
@IBOutlet弱var振荡器2VolumeControl:UISlider!
@IBOutlet弱var mixerVolumeControl:UISlider!

@IBAction函数振荡器1VolumeAction(_发送方:UISlider){
振荡器1.振幅=双精度(发送器值)
}

@IBAction函数振荡器2VolumeAction(_发送方:UISlider){
振荡器2.振幅=双(发送者值)
}

@IBAction函数混合器VolumeAction(_发送者:UISlider){
mixer.volume = Double(发送者值)
}

在viewWillAppear(_ :)函数中初始化

UI组件将在viewWillAppear(_ :)函数中初始化。

 振荡器1VolumeControl.value =浮点型(oscillator1.amplitude) 
振荡器2VolumeControl.value =浮动(oscillator2.amplitude)
mixerVolumeControl.value = Float(mixer.volume)

继续构建/运行项目。

5参考

本教程

  • Code-Story.com —在Web上的主页上,您可以在其中找到本文和其他内容。
  • GitHub上的AudioKit-Basics-Tutorial项目
  • AudioKit-Basics-Tutorial GitHub版本

音频套件

  • AudioKit下载
  • AudioKit框架
  • AudioKit开发人员文档
  • AudioKit Pro:功能,新闻,博客和突出显示的应用程序
  • AudioKit来源

可可豆

  • 可可豆

关于StackOverflow的AudioKit帮助

  • 堆栈溢出