AVPlayer 自动播放但不应该(Swift)
Posted
技术标签:
【中文标题】AVPlayer 自动播放但不应该(Swift)【英文标题】:AVPlayer autoplays but should not (Swift) 【发布时间】:2016-10-15 20:51:23 【问题描述】:我在一个 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()
,它也会自动播放。
我做错了什么?
【问题讨论】:
【参考方案1】:您至少应该将您的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()
【讨论】:
非常感谢!代码在viewWillAppear
中运行良好,即使没有.pause()
行,视频现在也不会自动播放。你能解释一下为什么会有所不同吗?
ViewDIdLoad
加载视图是否已加载,而 ViewWillAppear
在视图已完全转换到屏幕上时调用,这意味着它不是“隐藏”的,没有隐藏祖先,并且在一个有序的窗口中——默认行为是什么都不做。以上是关于AVPlayer 自动播放但不应该(Swift)的主要内容,如果未能解决你的问题,请参考以下文章