小编Gav*_*vin的帖子

将AKPlayer与AKSampleMetronome同步

我正在尝试在多个音频文件播放项目中使用AKSamplerMetronome作为主时钟。我希望AKPlayers与Metronome的悲观同步开始。将AKPlayer和AKSamplerMetronome混合为AudioKit.output成功,但是,我正在努力将AKPlayer.start与AKSamplerMetronome.beatTime连接(或其他我尚未弄清的东西),因此播放从节拍器的同步降落开始(并重复每次节拍器击倒的时间)。这是我写的:

class ViewController: UIViewController {

let metronome = AKSamplerMetronome()
let player = AKPlayer(audioFile: try! AKAudioFile(readFileName: "loop.wav"))
let mixer = AKMixer()

func startAudioEngine() {
    do {
        try AudioKit.start()
    } catch {
        print(error)
        fatalError()
    }
}

func makeConnections() {
    player >>> mixer
    metronome >>> mixer
    AudioKit.output = mixer
}

func startMetronome() {

    metronome.tempo = 120.0
    metronome.beatVolume = 1.0
    metronome.play()
}

func preparePlayer() {

    player.isLooping = true
    player.buffering = .always
    player.prepare()
// I wanted AKPlayer to be repeated based on Metronome's downbeat.

} …
Run Code Online (Sandbox Code Playgroud)

audiokit

5
推荐指数
1
解决办法
257
查看次数

使用多个 AKPlayers 播放多个音频文件

我正在尝试使用 AudioKit 的 AKPlayer 同步播放 4 个 mp3 文件,并且非常成功。不过,作为我的 Swift 研究的一部分,我想使用数组(或我还没有学到的东西)来简化我的代码,因为我觉得我的代码中有一些多余的东西,只是简单地复制了四次播放器代码。下面是我写的代码:

    let file1 = try? AKAudioFile(readFileName: "mixing_1_vocal.mp3")
    let file2 = try? AKAudioFile(readFileName: "mixing_2_drums.mp3")
    let file3 = try? AKAudioFile(readFileName: "mixing_3_synth.mp3")
    let file4 = try? AKAudioFile(readFileName: "mixing_4_bass.mp3")


    let player1 = AKPlayer(audioFile: file1!)
    let player2 = AKPlayer(audioFile: file2!)
    let player3 = AKPlayer(audioFile: file3!)
    let player4 = AKPlayer(audioFile: file4!)
    let startTime = AVAudioTime.now() + 0.25

    let mixer = AKMixer()
    player1 >>> mixer
    player2 >>> mixer
    player3 >>> mixer
    player4 >>> mixer

    player1.isLooping = true …
Run Code Online (Sandbox Code Playgroud)

swift audiokit

4
推荐指数
1
解决办法
567
查看次数

标签 统计

audiokit ×2

swift ×1