Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/111.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 为什么AudioKit中的音序器不能播放我的鼓声,为什么音量这么低?_Ios_Swift_Xcode_Volume_Audiokit - Fatal编程技术网

Ios 为什么AudioKit中的音序器不能播放我的鼓声,为什么音量这么低?

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

首先,一个伟大的框架。这是一手让我从硕士课程毕业。还有,我是赞助商!任何帮助都会受到感激。我还可以推送我的存储库并在GitHub上共享,以便更仔细地查看

不管怎样,这是我的代码

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音符编号将更改音频文件的频率