在Swift中使用AVPlayer重新启动音频文件时出错

时间:2017-12-25 22:41:47

标签: ios swift avaudioplayer

在Swift 3中,我想使用int播放音频,其中包含播放,暂停和重启音频的功能。

在教程中,此视图控制器中的代码成功播放暂停,但在重新启动时会导致错误:

AVPlayer()

这会产生错误:import UIKit //4 - import AVKit import AVFoundation class Music1ViewController: UIViewController { //5 - var songPlayer = AVAudioPlayer() var player = AVPlayer() //15 - var hasBeenPaused = false @IBAction func play(_ sender: Any) { let playerItem = AVPlayerItem(url: URL(string: "https://s3.amazonaws.com/kargopolov/kukushka.mp3")!) player = AVPlayer(playerItem: playerItem) player.play() } @IBAction func pause(_ sender: Any) { player.pause() } @IBAction func restart(_ sender: Any) { //17 - if player.isPlaying || hasBeenPaused { player.stop() player.currentTime = 0 player.play() } else { player.play() } }

查看文档,我不知道我遗漏了什么,因为我认为我已经为Value of type 'AVPlayer' has no member 'isPlaying'定义了变量而player似乎接受了状态作为其模型的一部分。

是否有一种首选方式告诉AVPlayer从某个值开始(在这种情况下,音频文件的0秒标记)?

1 个答案:

答案 0 :(得分:1)

确实AVPlayer没有'isPlaying'或者'玩' 。我认为你应该使用' rate == 1'或者' timeControlStatus == AVPlayerTimeControlStatusPlaying'(iOS10或更高版本)检查现在是否正在播放。