【问题标题】:MPMoviePlayerViewController is not playing .mp4 Video in SwiftMPMoviePlayerViewController 没有在 Swift 中播放 .mp4 视频
【发布时间】:2016-06-24 12:49:25
【问题描述】:

我有

import MediaPlayer

声明

var moviePlayer: MPMoviePlayerViewController = MPMoviePlayerViewController()

并且在播放按钮的动作中调用此代码

let url:NSURL = NSURL(string: String(format: "%@",self.videoListArray[indexPath!.row].url!))!
    self.moviePlayer = MPMoviePlayerViewController(contentURL: url)
    self.moviePlayer.moviePlayer.fullscreen = true
    self.moviePlayer.moviePlayer.repeatMode = .None
    self.moviePlayer.moviePlayer.movieSourceType = MPMovieSourceType.Streaming
    self.presentMoviePlayerViewControllerAnimated(self.moviePlayer) 

但是电影播放器​​会显示黑屏并在几秒钟后再次加载到 ViewController。

【问题讨论】:

  • 你有没有尝试创建像let url = NSURL.fileURLWithPath这样的NSURL
  • 你可以在使用play方法之前尝试moviePlayer.prepareToPlay()。
  • 谢谢,但我试过moviePlayer.prepareToPlay(),但没有成功
  • 感谢 Nitin,但我使用的是 Web url 而不是本地文件。

标签: ios swift media-player mpmovieplayercontroller


【解决方案1】:

MPMoviePlayerViewController 在 iOS 9.0 中已弃用,因此最好使用 AVPlayerViewController。要播放本地视频,您只需创建一个新的viewControllerAVPlayerViewController 并使用VCplayer

import AVKit
import AVFoundation 

class MyViewController: AVPlayerViewController {

    override func viewDidLoad() {
        super.viewDidLoad()

      if let filePath = NSBundle.mainBundle().pathForResource("Sample", ofType: "mp4") {
            let avPlayerLayer = AVPlayerLayer(player: player)
            avPlayerLayer.frame = self.view.frame
            view.layer .addSublayer(avPlayerLayer)
            let steamingURL = NSURL(fileURLWithPath: filePath)//note here, you need to use fileURLWithPath instead of string: for local files
            //let steamingURL = NSURL(string: "http://www.")//this is for web urls
            player = AVPlayer(URL: steamingURL)
            player!.play()
        }
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-16
    相关资源
    最近更新 更多