Ios 为什么AudioKit中的音序器不能播放我的鼓声,为什么音量这么低?
首先,一个伟大的框架。这是一手让我从硕士课程毕业。还有,我是赞助商!任何帮助都会受到感激。我还可以推送我的存储库并在GitHub上共享,以便更仔细地查看 不管怎样,这是我的代码Ios 为什么AudioKit中的音序器不能播放我的鼓声,为什么音量这么低?,ios,swift,xcode,volume,audiokit,Ios,Swift,Xcode,Volume,Audiokit,首先,一个伟大的框架。这是一手让我从硕士课程毕业。还有,我是赞助商!任何帮助都会受到感激。我还可以推送我的存储库并在GitHub上共享,以便更仔细地查看 不管怎样,这是我的代码 import Foundation import AudioKit class DrumSounds { let drums = AKMIDISampler() var currentBPM = 60 var rideCymbalFile: AKAudioFile? var snare
import Foundation
import AudioKit
class DrumSounds {
let drums = AKMIDISampler()
var currentBPM = 60
var rideCymbalFile: AKAudioFile?
var snareDrumFile: AKAudioFile?
var bassDrumFile: AKAudioFile?
var hiHatFile: AKAudioFile?
let sequencer = AKAppleSequencer(filename: "4tracks")
var booster = AKBooster()
init() {
do{
try rideCymbalFile = AKAudioFile(readFileName: "rideCymbalSound.wav")
try snareDrumFile = AKAudioFile(readFileName: "snareDrumSound.wav")
try bassDrumFile = AKAudioFile(readFileName: "bassDrumSound.wav")
try hiHatFile = AKAudioFile(readFileName: "hiHatSound.mp3")
try drums.loadAudioFiles([rideCymbalFile!,
snareDrumFile!,
bassDrumFile!,
hiHatFile!])
} catch {
print("error loading samples to drum object")
}
drums.volume = 1
booster = AKBooster(drums)
AudioKit.output = drums
sequencer.clearRange(start: AKDuration(beats: 0), duration: AKDuration(beats: 100))
sequencer.debug()
sequencer.setGlobalMIDIOutput(drums.midiIn)
sequencer.enableLooping(AKDuration(beats: 4))
sequencer.setTempo(Double(currentBPM))
}
func playDrumSounds () {
do {
try AKSettings.setSession(category: .playAndRecord, with: AVAudioSession.CategoryOptions.defaultToSpeaker)
let session = AVAudioSession.sharedInstance()
try session.setCategory(AVAudioSession.Category.playAndRecord)
if !AKSettings.headPhonesPlugged {
try session.overrideOutputAudioPort(AVAudioSession.PortOverride.speaker)
}
}catch {
print("error in settings.setSession")
}
sequencer.tracks[0].add(noteNumber: 0, velocity: 127, position: AKDuration(beats: 0), duration: AKDuration(beats: 1.0))
sequencer.tracks[0].add(noteNumber: 0, velocity: 127, position: AKDuration(beats: 1), duration: AKDuration(beats: 1.0))
sequencer.tracks[0].add(noteNumber: 0, velocity: 127, position: AKDuration(beats: 2), duration: AKDuration(beats: 1.0))
sequencer.tracks[0].add(noteNumber: 0, velocity: 127, position: AKDuration(beats: 3), duration: AKDuration(beats: 1.0))
sequencer.play()
}
}
我在另一篇帖子中偶然发现一条评论,就明白了这一点。音量较低,因为您需要在“签名和功能”下启用背景模式下的音频、播放和画中画。单击左上角的+按钮以添加功能: 至于演奏正确的鼓声:事实上,演奏的是正确的鼓声。但是我把MIDI的音符设置得太低了,所以听起来像是刺耳的静电。如果您遇到这个问题,并且从未像我这样使用过MIDI,这里有一个指向MIDI音符编号描述的链接:。数字越大,频率越高。更改MIDI音符编号将更改音频文件的频率