Ast*_*tro 4 ios swift4 xcode10
首先,我对 Xcode 10 和 Swift 4 完全陌生,我在这里搜索过但没有找到有效的代码。
我的目标:启动应用程序以播放本地存储的视频(称为“launchvideo”)。完成视频以显示/移动到具有“菜单”故事板 ID 的 UIviewcontroller
到目前为止,我的主导航控制器带有链接的视图控制器。我猜我需要一个 UIview 来保存要在此页面上播放的视频?
有人可以帮助新人吗?谢谢
首先将启动屏幕故事板从“常规”选项卡中的项目设置更改为“主故事板”。
创建一个具有以下名称的视图控制器并编写代码来实现 AVPlayer 播放视频。
import UIKit
import AVFoundation
class VideoLaunchVC: UIViewController {
func setupAVPlayer() {
let videoURL = Bundle.main.url(forResource: "Video", withExtension: "mov") // Get video url
let avAssets = AVAsset(url: videoURL!) // Create assets to get duration of video.
let avPlayer = AVPlayer(url: videoURL!) // Create avPlayer instance
let avPlayerLayer = AVPlayerLayer(player: avPlayer) // Create avPlayerLayer instance
avPlayerLayer.frame = self.view.bounds // Set bounds of avPlayerLayer
self.view.layer.addSublayer(avPlayerLayer) // Add avPlayerLayer to view's layer.
avPlayer.play() // Play video
// Add observer for every second to check video completed or not,
// If video play is completed then redirect to desire view controller.
avPlayer.addPeriodicTimeObserver(forInterval: CMTime(seconds: 1, preferredTimescale: 1) , queue: .main) { [weak self] time in
if time == avAssets.duration {
let vc = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "ViewController") as! ViewController
self?.navigationController?.pushViewController(vc, animated: true)
}
}
}
//------------------------------------------------------------------------------
override func viewDidLoad() {
super.viewDidLoad()
}
//------------------------------------------------------------------------------
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
self.setupAVPlayer() // Call method to setup AVPlayer & AVPlayerLayer to play video
}
}
Run Code Online (Sandbox Code Playgroud)
另请参阅以下视频:
| 归档时间: |
|
| 查看次数: |
2569 次 |
| 最近记录: |