AVPlayer 自动播放但不应该 (Swift)
AVPlayer autoplays but should not (Swift)
我在 macOS 应用程序中创建了一个非常简单的 AVPlayer。
import Cocoa
import AVKit
import AVFoundation
class ViewController: NSViewController {
@IBOutlet var playerView: AVPlayerView!
override func viewDidLoad() {
super.viewDidLoad()
let videoPath = URL(fileURLWithPath: "myPath/myFile.mp4")
let videoPlayer = AVPlayer(url: videoPath)
playerView.player = videoPlayer
}
}
它基本上工作正常,但播放器在启动时自动播放,这是不应该的。即使我在 viewDidLoad
末尾添加 playerView.player?.pause()
,它也会自动播放。
我做错了什么?
你至少应该把你的 AVPlayer
放在 ViewWillAppear()
函数中,暂停 playerView.player
会暂停你的整个视图——而不是暂停 videoPlayer
:
videoPlayer.pause()
在 playerView.player = videoPlayer
之后添加应该可以;你的代码将是:
override func viewWillAppear() {
super.viewWillAppear()
let videoPath = URL(fileURLWithPath: "myPath/myFile.mp4")
let videoPlayer = AVPlayer(url: videoPath)
playerView.player = videoPlayer
videoPlayer.pause()
}
我在 macOS 应用程序中创建了一个非常简单的 AVPlayer。
import Cocoa
import AVKit
import AVFoundation
class ViewController: NSViewController {
@IBOutlet var playerView: AVPlayerView!
override func viewDidLoad() {
super.viewDidLoad()
let videoPath = URL(fileURLWithPath: "myPath/myFile.mp4")
let videoPlayer = AVPlayer(url: videoPath)
playerView.player = videoPlayer
}
}
它基本上工作正常,但播放器在启动时自动播放,这是不应该的。即使我在 viewDidLoad
末尾添加 playerView.player?.pause()
,它也会自动播放。
我做错了什么?
你至少应该把你的 AVPlayer
放在 ViewWillAppear()
函数中,暂停 playerView.player
会暂停你的整个视图——而不是暂停 videoPlayer
:
videoPlayer.pause()
在 playerView.player = videoPlayer
之后添加应该可以;你的代码将是:
override func viewWillAppear() {
super.viewWillAppear()
let videoPath = URL(fileURLWithPath: "myPath/myFile.mp4")
let videoPlayer = AVPlayer(url: videoPath)
playerView.player = videoPlayer
videoPlayer.pause()
}