【问题标题】:Replacing audio file for AKAudioPlayer playback not working替换 AKAudioPlayer 播放的音频文件不起作用
【发布时间】:2020-04-06 00:44:25
【问题描述】:

我有一个应用程序,我想在其中拥有一个音频播放器,并且能够切换播放器中的音频剪辑。目前使用AKAudioPlayerreplace(file: audioFile)

我在加载视图控制器时创建了以下类:

class AudioFilePlayer {
    var songFile = Bundle.main
    var player: AKAudioPlayer!


    func play(file: String, type: String)    {
        var audioFile: AKAudioFile!
        let song = songFile.path(forResource: file, ofType: type)

        do {
            let url = URL(string: song!)
            audioFile = try AKAudioFile(forReading: url!)
        } catch {
            AKLog(error)
        }

        do {
            player = try AKAudioPlayer(file: audioFile)
        } catch {
            AKLog(error)
        }

    }

    func rePlay(file: String, type: String) {
        var audioFile: AKAudioFile!
        let song = songFile.path(forResource: file, ofType: type)

        do {
            let url = URL(string: song!)
            audioFile = try AKAudioFile(forReading: url!)
        } catch {
            AKLog(error)
        }

        do {
           try player.replace(file: audioFile)

        } catch {
            AKLog(error)
        }
    }

    func pause(){
        player.pause()
    }
}

应用程序启动后,我有以下代码来设置 AK 信号链并创建带有音频文件的播放器,然后我立即暂停它:

audioFilePlayer.play(file: "Breathing_01", type: ".mp3")
audioFilePlayer.player.looping = false

AudioKit.output = audioFilePlayer.player

do {
          try AudioKit.start()
      } catch {
          AKLog("AudioKit did not start!")
      }
audioFilePlayer.player.play()
audioFilePlayer.pause()

在应用程序的其他地方,我有以下代码来替换播放器中使用的音频文件:

self.audioFilePlayer.player.pause()
self.audioFilePlayer.rePlay(file: "Breathing_01", type: "mp3")
self.audioFilePlayer.player.play()

当我运行应用程序并启动尝试替换文件的过程时,我看到以下日志:

2020-04-05 17:32:13.674413-0700 Mindful[24081:4439478] [general] AKAudioPlayer.swift:replace(file:):397:AKAudioPlayer -> File with "Breathing_01.mp3" Reloaded (AKAudioPlayer.swift:replace(file:):397)
2020-04-05 17:32:13.686119-0700 Mindful[24081:4439478] [general] AKAudioPlayer.swift:startTime:171:AKAudioPlayer.startTime = 0.0, startingFrame: 0 (AKAudioPlayer.swift:startTime:171)
2020-04-05 17:32:14.282632-0700 Mindful[24081:4439478] [general] AKAudioPlayer.swift:updatePCMBuffer():570:read 13359773 frames into buffer (AKAudioPlayer.swift:updatePCMBuffer():570)

但根本没有音频输出。设置断点时,我可以确认我的播放器正在播放,但没有音频。

任何帮助表示赞赏!

【问题讨论】:

    标签: ios swift audiokit akaudioplayer


    【解决方案1】:

    我有同样的问题。执行以下修复它:

    try player.replace(file: audioFile)
    DispatchQueue.main.async {
      self.player.play(from: 0)
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-03-10
      • 1970-01-01
      • 2022-01-06
      • 2014-05-27
      • 1970-01-01
      • 2019-03-18
      • 1970-01-01
      相关资源
      最近更新 更多