首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AVAudioPlayerNode同时播放多首歌曲

AVAudioPlayerNode同时播放多首歌曲
EN

Stack Overflow用户
提问于 2019-11-14 16:03:14
回答 1查看 230关注 0票数 0

我正在尝试开发一个具有均衡器的音乐播放器应用程序。我正在使用AVAudioEngine和附加的AVAudioPlayerNode,但当我更改歌曲时,前一首歌曲也会与当前歌曲一起播放。切换多首歌曲,同时播放所有歌曲。之前我使用的是MPMediaItemPlayer,但在这种情况下,我无法连接均衡器。我想让我的应用一次播放一首带有均衡器的歌曲。

代码语言:javascript
复制
    self.AVaudioEngine = AVAudioEngine.init()
    self.AVaudioPlayerNode = AVAudioPlayerNode.init()
    self.AVaudioUnitEQ = AVAudioUnitEQ(numberOfBands: 10)
    self.AVaudioEngine.attach(self.AVaudioPlayerNode)
    self.AVaudioEngine.attach(self.AVaudioUnitEQ)

    self.AVaudioPlayerNode.scheduleFile(self.AVaudioFile, at: nil, completionHandler: nil)
    self.AVaudioEngine.connect(self.AVaudioPlayerNode, to: self.AVaudioUnitEQ, format: self.AVaudioFile.processingFormat)
    self.AVaudioEngine.connect(self.AVaudioUnitEQ, to: self.AVaudioEngine.mainMixerNode, format: self.AVaudioFile.processingFormat)

    if !self.AVaudioEngine.isRunning {
        try! self.AVaudioEngine.start()
    }

    let sampleRate = self.AVaudioFile.processingFormat.sampleRate / 2
    let format = self.AVaudioEngine.mainMixerNode.outputFormat(forBus: 0)
    self.AVaudioEngine.mainMixerNode.installTap(onBus: 0, bufferSize: AVAudioFrameCount(sampleRate), format: format, block:{ (buffer: AVAudioPCMBuffer!, time: AVAudioTime!) -> Void in
    })
    self.AVaudioPlayerNode.play()

提前感谢!

EN

回答 1

Stack Overflow用户

发布于 2019-11-14 16:31:26

这是你开始玩AVaudioPlayerNode的代码。但是,您的停止播放AVaudioPlayerNode的代码在哪里?

你看到this了吗?

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

https://stackoverflow.com/questions/58851979

复制
相关文章

相似问题

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