使用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帮助
- 堆栈溢出