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

Error when restarting audio file using AVPlayer in Swift

在Swift3中,我想使用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 似乎接受状态作为其模型的一部分。

是否有更好的方法告诉 AVPlayer 从一个值开始(在本例中,音频文件的 0 秒标记)?

确实 AVPlayer 没有 属性 of 'isPlaying' 或 'playing' 。我认为您应该使用 'rate == 1' 或 'timeControlStatus == AVPlayerTimeControlStatusPlaying'(iOS10 或更高)来检查现在是否正在播放。