【发布时间】:2016-08-12 03:36:12
【问题描述】:
谁能给我指点 Matt Gallagher 的音频发生器的工作版本?
http://www.cocoawithlove.com/assets/objc-era/ToneGenerator.zip
正如 Matt 所说,它尚未更新,显然已被较新的 API 破坏。我更新了我认为需要更新的内容,现在它编译并运行时只发出弃用警告,但它所做的只是在触摸“播放”和“停止”按钮时发出点击声音。我浏览了代码并查看了 Xcode 中的 API 文档,但这是一个陡峭的学习曲线。我很想有一个工作版本,这样我就可以修改它以了解更多信息。有人更新了吗?还是类似的音源?
我尝试使用 hotpaw2 中的 ToneOutputUnit 类,方法如下。
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
let unit = ToneOutputUnit()
unit.toneCount = 64000
unit.setFrequency(1000.0)
unit.setToneVolume(0.5)
unit.startToneForDuration(2.0)
unit.enableSpeaker()
print("ok")
}
}
我可以看到 ToneOutputUnit 代码正在被调用,并且正在逐步执行各种函数,但没有发出声音。我还尝试在“startToneForDuration”之前调用“enableSpeaker”,但也没有声音。我错过了什么?
【问题讨论】:
-
这是我转换为 Swift 2.x 和新 iOS Audio Unit v3 API 的音调生成器类:gist.github.com/hotpaw2/630a466cc830e3d129b9
-
非常感谢。我尝试从以下视图控制器中调用它,但没有发出声音。你能通过说明它应该如何调用来进一步提供帮助吗?在这一点上,我真的不在乎产生什么音调。我只是想听一些我可以改变的东西。 [我现在看到我无法在评论中插入代码。我会尝试添加到原来的。]
-
来自help center:要求我们推荐或查找书籍、工具、软件库、教程或其他场外资源的问题对于 Stack Overflow 来说是题外话,因为它们往往会吸引固执己见的答案和垃圾邮件。
-
罗伯特,将“单位”变量移动为实例变量,而不是本地变量。现在,当 viewDidLoad 返回时,它正在从堆栈中弹出。
标签: audio core-audio