小编Ope*_*pei的帖子

一个接一个地运行一个函数完成

我试图在pullData()完成后运行loadViews(),我想知道这样做的最佳方法是什么?我想在它上面设置10秒超时,如果可能的话我可以显示网络错误.从我所看到的,GCD看起来是实现这一目标的方式,但我对它的实现感到困惑.谢谢你提供的所有帮助!

//1
pullData()
//2
loadViews()
Run Code Online (Sandbox Code Playgroud)

ios swift

10
推荐指数
1
解决办法
1万
查看次数

AVPlayer冻结一旦移到后台

我有以下代码加载视频并循环它.但是,当按下主页并返回应用程序时,视频会冻结,不会再次播放.我觉得答案是在AppDelegate函数中,但似乎无法让它们工作.

import UIKit
import AVKit
import AVFoundation



class ViewController: UIViewController, UIApplicationDelegate {



var videoPlayer: AVPlayer!
var playerLayer: AVPlayerLayer?



override func viewDidLoad() {
    super.viewDidLoad()
    let path = NSBundle.mainBundle().pathForResource("video", ofType:"mp4")
    let url = NSURL(fileURLWithPath: path!)
    let playerItem = AVPlayerItem(URL: url)

    self.videoPlayer = AVPlayer(playerItem: playerItem)
    self.playerLayer = AVPlayerLayer(player: self.videoPlayer)
    self.playerLayer!.frame = self.view.frame
    self.videoPlayer!.play()

    self.view.layer.addSublayer(self.playerLayer!)


    NSNotificationCenter.defaultCenter().addObserver(self, selector: Selector("playerDidReachEnd:"), name: AVPlayerItemDidPlayToEndTimeNotification, object:nil)
}


func playerDidReachEnd(notification: NSNotification) {
    self.videoPlayer.seekToTime(kCMTimeZero)
    self.videoPlayer.play()
}


func applicationWillResignActive(application: UIApplication) {
    videoPlayer.pause()
}


func applicationDidBecomeActive(application: UIApplication) {
    videoPlayer.play()
}


func applicationDidEnterBackground(application: UIApplication) …
Run Code Online (Sandbox Code Playgroud)

xcode swift xcode7 swift2 tvos

4
推荐指数
1
解决办法
717
查看次数

标签 统计

swift ×2

ios ×1

swift2 ×1

tvos ×1

xcode ×1

xcode7 ×1