在 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 或更高)来检查现在是否正在播放。
在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 或更高)来检查现在是否正在播放。