- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在尝试在一个简单的 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/
我正在尝试用新的 AKSampler 替换 AKMidiSampler 和 AKPlayer,但由于某些原因,新的采样器无法播放AKAudioFiles 旧的。 这是一个使用所有三个采样器的小代码示例
我正在尝试在一个简单的 iOS 项目上使用 AKSampler 来加载文件并在点击设备屏幕时播放它。 我对 AKSamplePlayer 执行了相同的步骤并且工作正常,但我更愿意使用 AKSample
我有 2 个连接到 AKMixer 的 AKSampler,但是当我为每个 AKSampler 调用停止函数时,音频不会停止播放,它只会在我调用 AKMixer 的停止时停止。如何停止播放连接到 AX
是否有任何选项可以加载和播放以相同速度 (AKSampler) 和 SFZ 播放的样本文件 (Round Robins),以获得更自然的变化声音?我尝试过不同的事情,但不幸的是没有成功。 AKSamp
由于 AudioKit 4.0 与最新的 swift 语言和 Xcode 不兼容,我不得不从 AudioKit 4.0 升级到 AudioKit 4.2。 但是,现在我的项目无法编译,因为在我使用此方
我是一名优秀的程序员,十分优秀!