在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秒标记)?
AVPlayer确实没有'isPlaying'或'playing'的属性。我认为你应该使用'rate == 1'或'timeControlStatus == AVPlayerTimeControlStatusPlaying'(iOS10或更高版本)来检查现在是否正在播放。