gpt4 book ai didi

ios - 无法将 AKAudioFile 加载到 AKSampler

转载 作者:可可西里 更新时间:2023-11-01 01:10:14 48 4
gpt4 key购买 nike

我正在尝试在一个简单的 iOS 项目上使用 AKSampler 来加载文件并在点击设备屏幕时播放它。
我对 AKSamplePlayer 执行了相同的步骤并且工作正常,但我更愿意使用 AKSampler,而且我有一种强烈的遗漏感。我试过 play() 方法,也试过带有 midi 音符的方法。
哪一个是对的?它们都有效吗?此外,AudioKit 看起来很有前途。

这是我的代码:

import UIKit
import AudioKit

class ViewController: UIViewController
{
var sampler = AKSampler()
var tapRecognizer = UITapGestureRecognizer()

override func viewDidLoad()
{


super.viewDidLoad()
do
{
let file = try AKAudioFile(readFileName: "AH_G2.wav")
try sampler.loadAudioFile(file)
}
catch
{
print("No Such File...")
}

view.addGestureRecognizer(tapRecognizer)
view.isUserInteractionEnabled = true
tapRecognizer.addTarget(self, action: #selector(viewTapped))


AudioKit.output = sampler
AudioKit.start()
}

@objc private func viewTapped()
{
sampler.play(noteNumber: 60, velocity: 80, channel: 0)

print("tapped...")
}
}

编辑:我的问题实际上是 loadAudioFile 方法,AKAudioFile 本身很好,AKSampler 播放默认的正弦声音。
我还尝试了用于创建播放器和采样器的 AKAudioFile 方法没有。

let file = try AKAudioFile (readFileName: "AH_G2.wav")
player = file.player
sampler = file.sampler

我还尝试使用菜单添加 wav 文件,没有任何变化。

最佳答案

如果您查看实现,只有一个 play() 方法,但它具有音符编号、速度和 channel 的默认值:

@objc open func play(noteNumber: MIDINoteNumber = 60,
velocity: MIDIVelocity = 127,
channel: MIDIChannel = 0) {
samplerUnit.startNote(noteNumber, withVelocity: velocity, onChannel: channel)
}

改变 MIDI 音符将改变样本播放的音高/速度(60 是标准速度,72 是双倍速度,48 将是半速等),改变速度将改变音量。

注意:您帖子的标题是“AKSampler 无法播放”,但我运行了您的代码(当然是更改了样本),它在我的 iPad 上播放得很好。

关于ios - 无法将 AKAudioFile 加载到 AKSampler,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47841022/

48 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com