在 Storyboard 中实现视频视图
Implementing video view in the Storyboard
我想构建简单的视频应用程序,它可以观看用户添加的 YouTube 链接形式的视频。
我没有找到 "VideoView" 我的意思是如果图像视图用于图像,那么 UIView 用于视频。
原库中没有执行视频查看功能的对象。但是您可以在您的项目中导入 MediaPlayer
框架并以编程方式添加它。
这里有一个 Swift 例子
import MediaPlayer
class Step1ViewController: UIViewController {
var moviePlayer: MPMoviePlayerController?
override func viewDidLoad() {
super.viewDidLoad()
playVideo()
}
func playVideo() {
let videoView = UIView(frame: CGRectMake(self.view.bounds.origin.x, self.view.bounds.origin.y, self.view.bounds.width, self.view.bounds.height))
let pathToEx1 = NSBundle.mainBundle().pathForResource("myVideoFile", ofType: "mp4")
let pathURL = NSURL.fileURLWithPath(pathToEx1!)
moviePlayer = MPMoviePlayerController(contentURL: pathURL)
if let player = moviePlayer {
player.view.frame = videoView.bounds
player.prepareToPlay()
player.scalingMode = .AspectFill
videoView.addSubview(player.view)
}
self.view.addSubview(videoView)
}
}
至于进一步的定制和应用程序通知,它有很多内置的可能性。所以检查一下。
为了播放视频苹果已经提供了MPMovieViewController
看到这个 https://developer.apple.com/library/prerelease/ios/documentation/MediaPlayer/Reference/MPMoviePlayerController_Class/index.html
还有这个
http://www.brianjcoleman.com/tutorial-play-video-swift/
在 youtube 视频案例中,我们使用了嵌入式链接,因此您将从中获得帮助 https://github.com/gilesvangruisen/Swift-YouTube-Player
import AVFoundation
import AVKit
class ViewController: UIViewController {
var player = AVPlayer()
var playerController = AVPlayerViewController()
func playVideo() {
let videoURL = NSURL(string: videoUrl)
player = AVPlayer(url: videoURL! as URL)
let playerController = AVPlayerViewController()
playerController.player = player
self.addChildViewController(playerController)
// Add your view Frame
playerController.view.frame = self.view.frame
// Add subview in your view
self.view.addSubview(playerController.view)
player.play()
}
func stopVideo() {
player.pause()
}
}
在Xcode 10(代码少一点):
- 在界面生成器(故事板)中,添加“AVKit Player View Controller”
创建一个派生自 AVPlayerViewController:
的视图控制器
import UIKit
import AVKit
class VideoPlayerViewController: AVPlayerViewController {
override func viewDidLoad() {
super.viewDidLoad()
let videoURL = Bundle.main.url(forResource: "video", withExtension: "mp4")!
self.player = AVPlayer(url: videoURL)
}
override func viewDidAppear(_ animated: Bool) {
self.player?.play()
}
}
不要忘记在故事板的身份检查器中连接此自定义 class :)
Note: this example uses video URL pointing to a bundle's resource.
我想构建简单的视频应用程序,它可以观看用户添加的 YouTube 链接形式的视频。 我没有找到 "VideoView" 我的意思是如果图像视图用于图像,那么 UIView 用于视频。
原库中没有执行视频查看功能的对象。但是您可以在您的项目中导入 MediaPlayer
框架并以编程方式添加它。
这里有一个 Swift 例子
import MediaPlayer
class Step1ViewController: UIViewController {
var moviePlayer: MPMoviePlayerController?
override func viewDidLoad() {
super.viewDidLoad()
playVideo()
}
func playVideo() {
let videoView = UIView(frame: CGRectMake(self.view.bounds.origin.x, self.view.bounds.origin.y, self.view.bounds.width, self.view.bounds.height))
let pathToEx1 = NSBundle.mainBundle().pathForResource("myVideoFile", ofType: "mp4")
let pathURL = NSURL.fileURLWithPath(pathToEx1!)
moviePlayer = MPMoviePlayerController(contentURL: pathURL)
if let player = moviePlayer {
player.view.frame = videoView.bounds
player.prepareToPlay()
player.scalingMode = .AspectFill
videoView.addSubview(player.view)
}
self.view.addSubview(videoView)
}
}
至于进一步的定制和应用程序通知,它有很多内置的可能性。所以检查一下。
为了播放视频苹果已经提供了MPMovieViewController 看到这个 https://developer.apple.com/library/prerelease/ios/documentation/MediaPlayer/Reference/MPMoviePlayerController_Class/index.html
还有这个
http://www.brianjcoleman.com/tutorial-play-video-swift/
在 youtube 视频案例中,我们使用了嵌入式链接,因此您将从中获得帮助 https://github.com/gilesvangruisen/Swift-YouTube-Player
import AVFoundation
import AVKit
class ViewController: UIViewController {
var player = AVPlayer()
var playerController = AVPlayerViewController()
func playVideo() {
let videoURL = NSURL(string: videoUrl)
player = AVPlayer(url: videoURL! as URL)
let playerController = AVPlayerViewController()
playerController.player = player
self.addChildViewController(playerController)
// Add your view Frame
playerController.view.frame = self.view.frame
// Add subview in your view
self.view.addSubview(playerController.view)
player.play()
}
func stopVideo() {
player.pause()
}
}
在Xcode 10(代码少一点):
- 在界面生成器(故事板)中,添加“AVKit Player View Controller”
创建一个派生自 AVPlayerViewController:
的视图控制器import UIKit import AVKit class VideoPlayerViewController: AVPlayerViewController { override func viewDidLoad() { super.viewDidLoad() let videoURL = Bundle.main.url(forResource: "video", withExtension: "mp4")! self.player = AVPlayer(url: videoURL) } override func viewDidAppear(_ animated: Bool) { self.player?.play() } }
不要忘记在故事板的身份检查器中连接此自定义 class :)
Note: this example uses video URL pointing to a bundle's resource.