首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AudioKit 4.0.1 -类型“AKSequencer”的值没有成员“avTracks”

AudioKit 4.0.1 -类型“AKSequencer”的值没有成员“avTracks”
EN

Stack Overflow用户
提问于 2017-10-09 10:13:10
回答 2查看 430关注 0票数 2

我的应用程序在AudioKit最近从3.7.1升级到4.0.1后停止工作。

这是我的代码:

代码语言:javascript
复制
    sequencer = AKSequencer(filename: myMidi)

    for i in 0..<popCount {

        //start Audio
        sequencer!.avTracks[i].destinationAudioUnit = gPOPs[i].samplePlayer.samplerUnit          
    }

下面是我得到的错误信息:

类型'AKSequencer‘的值没有成员'avTracks

只是想知道是否有人能帮助我理解什么已经改变了,我怎样才能解决它。

编辑

也曾尝试过:

sequencer!.tracks[i].destinationAudioUnit = gPOPs[i].samplePlayer.samplerUnit

现在得到以下错误消息:

类型'AKMusicTrack‘的值没有成员'destinationAudioUnit

并尝试:

sequencer!.tracks[i].internalMusicTrack = gPOPs[i].samplePlayer.samplerUnit

这将产生以下错误:

不能将“AVAudioUnitSampler”类型的值赋值为“MusicTrack?”(又名“Optional<OpaquePointer>”)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-11-06 10:42:04

感谢Aure的投入,这帮助我找到了解决这个问题的方法。这篇关于谷歌集团的文章也是如此。特别是迈克尔·希尔的最后评论。

下面是对我的方法的更新(编辑和简化,只显示必要的部分):

代码语言:javascript
复制
var MIDISamplePlayer = AKMIDISampler()
var sequencer: AKSequencer?
var mixer: AKMixer!

// initialise the mixer
mixer = AKMixer()

do  {
        audiofile = try AKAudioFile(readFileName: SoundFilename as! String, 
        baseDir: .resources)
    } catch let error as NSError {
        print("There's an error: \(error)")
    }

do {
       try sprite.MIDISamplePlayer.loadAudioFile(audiofile)
    } catch let error as NSError {
       print("There's an error: \(error)")
    }

sprite.tracker = AKAmplitudeTracker(sprite.MIDISamplePlayer)
mixer.connect(to:sprite.tracker, bus: mixer.nextInput.bus)

sequencer = AKSequencer(filename: POPmidi)
sequencer?.enableLooping()

let midi = AKMIDI()

for i in 0..<popCount {
    gPOPs[i].MIDISamplePlayer.enableMIDI(midi.client, name: "MIDISample_\(i)")
    mixer.connect(gPOPs[i].MIDISamplePlayer)
    sequencer!.tracks[i].setMIDIOutput(gPOPs[i].MIDISamplePlayer.midiIn)
}

AudioKit.start()
sequencer!.play()

现在一切正常,但我一直都有一个神秘而有力的音调在演奏。我找不到它的源头了?任何帮助调试这将是一个救命!谢谢

票数 3
EN

Stack Overflow用户

发布于 2017-10-26 21:13:15

很抱歉,这件事从未出现在AudioKit的核心团队的雷达上。看来你用有声哈希标签问了问题。无论如何,从3.7到>4.0,我们简化了排序器,并将您使用的功能移到AKMIDIPlayer中:

https://github.com/AudioKit/AudioKit/blob/master/AudioKit/Common/MIDI/AKMIDIPlayer.swift

如果您使用它,并引用“跟踪”而不是avTracks,那么您应该在路上很好。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46644013

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档