将Swift与AVPlayer一起使用,如何通过代码添加和删除video?
我是Swift的新手,我正在尝试将video添加到视图中,然后在调度“stopScreenSaver”通知时将其删除。 除了当我去除video层(playerLayer.removeFromSuperlayer())时,一切似乎都运行良好。
任何指导将不胜感激。 我觉得我在这里缺少一些添加和删除图层的基本概念!
import UIKit import AVFoundation import QuartzCore import CoreMedia class ViewController: UIViewController { let contentURL = NSBundle.mainBundle().URLForResource("testvideo", withExtension: "mp4") var player = AVPlayer() var playerLayer = AVPlayerLayer() let screenSize : CGRect = UIScreen.mainScreen().bounds override func viewDidLoad() { super.viewDidLoad() // Used for starting and stopping the videos related to the screen saver NSNotificationCenter.defaultCenter().addObserver(self, selector: "playScreenSaver:", name: "playScreenSaverID", object: nil) NSNotificationCenter.defaultCenter().addObserver(self, selector: "stopScreenSaver:", name: "stopScreenSaverID", object: nil) } override func viewDidAppear(animated: Bool) { // Player player = AVPlayer(URL: contentURL!) // Layer for display… Video plays at the full size of the iPad playerLayer = AVPlayerLayer(player: player) var view = UIView(frame: CGRectMake(0, 0, screenSize.width, screenSize.height)) self.view.layer.addSublayer(playerLayer) playerLayer.frame = view.bounds } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() } func playScreenSaver(notification: NSNotification){ print("play") dispatch_async(dispatch_get_main_queue()) { self.view.layer.addSublayer(self.playerLayer!) self.player!.play() } } func stopScreenSaver(notification: NSNotification){ print("pause") dispatch_async(dispatch_get_main_queue()) { self.player!.pause() self.playerLayer!.removeFromSuperlayer() } } }
使用调度修复了我遇到的问题。
dispatch_async(dispatch_get_main_queue()) { self.player!.pause() self.playerLayer!.removeFromSuperlayer() }
- 如何将HEX转换为Objective-C中的NSString?
- GameplayKit>场景编辑器导航图>如何使用它进行寻路?
- 使用单声道触摸为ios构建具有电子签名function的应用程序?
- 使用社交框架检索Twitter OAuth令牌(iOS6)
- 类型’DispatchQueue.Attributes’没有成员’serial’
- SpriteKit中有多个不同的碰撞问题(使用Xcode编写Objective-C的iOS应用程序)
- iOS应用程序可以在不打开页面的情况下切换到Safari?
- iOS UIWebView,改变内容大小
- 如何使导航栏和状态栏模糊(UIBlurEffect)? iOS,Swift 3