【问题标题】:Implementing video view in the Storyboard在 Storyboard 中实现视频视图
【发布时间】:2015-11-28 21:10:38
【问题描述】:

我想构建一个简单的视频应用程序,它可以查看用户添加的视频表单 youtube 链接。 我没有找到“VideoView”,我的意思是如果图像视图用于图像,那么 UIView 用于视频。

【问题讨论】:

标签: ios swift uiimageview storyboard


【解决方案1】:

原始库中没有执行视频查看功能的对象。但是您可以在项目中导入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)
}

}

至于进一步的定制和应用通知,它有很多内置的可能性。所以看看吧。

【讨论】:

  • 仅供参考,此 MPMoviePlayerController 已弃用
【解决方案2】:

播放视频苹果提供了 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 获得帮助

【讨论】:

  • > 为了播放视频,苹果提供了 MPMovieViewController ... 不在可可中。苹果就是个笑话。
【解决方案3】:
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()
 }
}

【讨论】:

    【解决方案4】:

    Xcode 10 中(代码少一点):

    1. 在界面构建器(故事板)中,添加“AVKit Player View Controller
    2. 创建一个从 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()
        }
      }
      
    3. 不要忘记在情节提要的身份检查器中连接这个自定义类 :)

    注意:此示例使用指向捆绑资源的视频 URL。

    【讨论】:

    猜你喜欢
    • 2021-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-03
    • 2012-01-12
    • 1970-01-01
    相关资源
    最近更新 更多