Ios 音频播放器未初始化
我正在尝试“触摸”KikiAudioPlayer中的音频播放器。这是我的观点,我想这样做Ios 音频播放器未初始化,ios,swift,xcode,Ios,Swift,Xcode,我正在尝试“触摸”KikiAudioPlayer中的音频播放器。这是我的观点,我想这样做 class AudioBarView: UIView { @IBOutlet weak var playPauseButton: UIButton! @IBOutlet weak var nowPlayingSongLabel: UILabel! var kikiAudioPlayer = KikiAudioPlayer() @IBAction func
class AudioBarView: UIView {
@IBOutlet weak var playPauseButton: UIButton!
@IBOutlet weak var nowPlayingSongLabel: UILabel!
var kikiAudioPlayer = KikiAudioPlayer()
@IBAction func playPauseButtonPressed(_ sender: UIButton) {
let playImage = UIImage(systemName: "play.fill")
if playPauseButton.currentImage == playImage {
playPauseButton.setImage(UIImage(systemName: "pause.fill"), for: .normal)
kikiAudioPlayer.play()
} else {
playPauseButton.setImage(UIImage(systemName: "play.fill"), for: .normal)
kikiAudioPlayer.pause()
}
}
}
这是“KikiAudioPlayer”的片段和音频播放器的声明
class KikiAudioPlayer: NSObject, AVAudioPlayerDelegate {
var audioPlayer = AVAudioPlayer()
func play() {
audioPlayer.play()
delegate?.audioPlayerPlayingStatusChanged(isPlaying: true)
updater = CADisplayLink(target: self, selector: #selector(updateDelegate))
updater.add(to: RunLoop.current, forMode: RunLoop.Mode.common)
setWaiting(to: false)
}
func pause() {
audioPlayer.pause()
delegate?.audioPlayerPlayingStatusChanged(isPlaying: false)
updater.invalidate()
setWaiting(to: true)
}
}
当按下按钮时,我的断点说。这意味着我按下按钮,一切都不会改变
po kikiAudioPlayer.audioPlayer <uninitialized>
po kikikiaudioplayer.audioPlayer
问题是,如果我创建了KikiAudioPlayer实例,为什么AudioBarView中的音频播放器未初始化
我没有向播放器提供任何资源(这并不重要),因为音频播放器工作正常,但问题是无法暂停播放
我曾尝试清理生成文件夹,但没有任何帮助。我同意这一行代码:
var audioPlayer = AVAudioPlayer()
AVAudioPlayer没有将init()
列为有效的初始值设定项。即使您可以在没有compliler警告的情况下使用它。官方文件显示了四个单独的初始值设定项,它们都至少有一个参数
我建议您查看此博客以了解更多信息
更新:答案比我想象的要简单。我删除了KikiAudioPlayer中音频播放器的声明,并将其添加到应用程序代理中
var audioPlayer: AVAudioPlayer!
我已经阅读了这篇文章,但我不明白我需要做什么来解决这个问题。将
var player=AVAudioPlayer()
更改为var player:AVAudioPlayer代码>?有帮助吗?我不知道你提供的代码片段的全部逻辑。是的,我以前做过,但没有帮助。