2014-09-20 90 views
5

我在使用AVPlayer在快速操场内播放视频时遇到了问题。在Swift Playground中使用AVPlayer播放视频?

这是我的代码。

import UIKit 
import AVFoundation 

var f=CGRectMake(0, 0, 500, 500) 
var url=NSURL(string: "http://s3.amazonaws.com/vids4project/sample.mp4") 
var playerItem = AVPlayerItem(URL: url) 

var v = UIView(frame:f) 
var player=AVPlayer(playerItem: playerItem) 
var playerLayer=AVPlayerLayer(player: player) 

playerLayer.frame=f 
v.layer.addSublayer(playerLayer) 
player.play() 

有什么建议吗?代码完全没有。我的期望是'v'变量应该显示视频。当我将avplayerlayer连接到故事板的视图时,它似乎在操场外工作。

回答

6

尝试在末尾添加是为了保持操场跑

import XCPlayground 
XCPSetExecutionShouldContinueIndefinitely(continueIndefinitely: true) 
7

下,如果你把它扔到操场应该工作。确保换出的路径:(Xcode7 GM)@Justin列维冬季的回答

import UIKit 
import AVFoundation 
import XCPlayground 


var f = CGRectMake(0, 0, 500, 500) 

let path = NSBundle.mainBundle().pathForResource("movie", ofType: "m4v")! 
let url = NSURL(fileURLWithPath: path) 

var playerItem = AVPlayerItem(URL: url) 

var v = UIView(frame: f) 
v.backgroundColor = UIColor.blackColor() 
var player = AVPlayer(playerItem: playerItem) 
var playerLayer = AVPlayerLayer(player: player) 

playerLayer.frame = f 
v.layer.addSublayer(playerLayer) 
player.play() 

XCPShowView("View", view: v) 
XCPSetExecutionShouldContinueIndefinitely(true) 
+0

感谢您的支持!你怎么能让它继续玩下去? – 2017-11-15 17:59:33

0

谢谢,我已经更新了Swift3代码,和Xcode 8测试(在时间轴此视频播放,但不是在快速查看):

import AVFoundation 
import PlaygroundSupport 


URLCache.shared = URLCache(memoryCapacity: 0, diskCapacity: 0, diskPath: nil) 
let width = 568 
let height = 320 

let container = UIView(frame: CGRect(x: 0, y: 0, width: width, height: height)) 

PlaygroundPage.current.liveView = container 

PlaygroundPage.current.needsIndefiniteExecution = true 


func playVideo(_ url: URL){ 
    let f=CGRect(x: 0, y: 0, width: width, height: height) 
    let playerItem = AVPlayerItem(url: url) 

    let player=AVPlayer(playerItem: playerItem) 
    let playerLayer=AVPlayerLayer(player: player) 

    playerLayer.frame=f 
    container.layer.addSublayer(playerLayer) 
    PlaygroundPage.current.liveView = container 

    player.play() 
} 

playVideo(URL(string:"http://s3.amazonaws.com/vids4project/sample.mp4")!)