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

问题描述 投票:-1回答:1

在Swift 3中,我想使用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秒标记)?

ios swift avaudioplayer
1个回答
1
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.