.avi 文件视频无法在 MPMoviePlayerController ios 播放器中播放
Posted
技术标签:
【中文标题】.avi 文件视频无法在 MPMoviePlayerController ios 播放器中播放【英文标题】:.avi file video not play in MPMoviePlayerController ios player 【发布时间】:2017-11-22 06:25:51 【问题描述】:我正在使用MPMoviePlayerController
播放avi 格式的视频文件。
音频有效,但视频无效。这是为什么呢?
【问题讨论】:
Important MPMoviePlayerViewController 类在 ios 9 中已正式弃用。(MPMoviePlayerController 类也已正式弃用。)要在 iOS 9 及更高版本中播放视频内容,请改用 AVKit 框架中的 AVPictureInPictureController 或 AVPlayerViewController 类, 或 WebKit 中的 WKWebView 类 使用可以使用AVPlayerViewControllerdeveloper.apple.com/documentation/avkit/avplayerviewcontroller 【参考方案1】:MPMoviePlayerViewController
仅支持 .mov、.mp4、.mpv 和 .3gp,并且已弃用。
来自苹果的documentation:
在 iOS 9 中正式弃用 MPMoviePlayerViewController 类。 (MPMoviePlayerController 类也已正式弃用。) 在 iOS 9 及更高版本中播放视频内容,而不是使用 AVPictureInPictureController 或 AVPlayerViewController 类来自 AVKit 框架,或来自 WebKit 的 WKWebView 类。
你应该使用 AVPlayerViewController:
import AVFoundation
import AVKit
let videoPath = "https://video.avi"
let videoURL = URL(string: videoPath)
let player = AVPlayer(url: videoURL!)
let playerViewController = AVPlayerViewController()
playerViewController.player = player
present(playerViewController, animated: true)
playerViewController.player?.play()
或者只是将 AVPlayer 添加为子视图:
let videoURL = URL(string: videoPath)
let player = AVPlayer(url: videoURL!)
let playerLayer = AVPlayerLayer(player: player)
playerLayer.frame = self.view.bounds
view.layer.addSublayer(playerLayer)
player.play()
它支持以下音频/视频格式: .mpeg、.mpeg-2-video、.avi、.aifc-audio、.aac-audio、.mpeg-4、.au-audio、.aiff-audio、.mp2、.3gpp2、.ac3-audio、. mp3、.mpeg-2-transport-stream、.3gpp、.mpeg-4-audio
【讨论】:
有什么方法可以检测远程 URL 是否可播放?【参考方案2】:我认为您无法在 ios 中使用 MPMoviePlayerController 播放 .avi 文件。
由于 .avi 格式的内容无法在 iOS 设备上解码视频。
【讨论】:
我想在 ios 中播放 .avi 文件(带音频和视频),那么有没有可用的播放器呢?或者像ijkmediaplayer这样的播放器库(这个不支持avi) 我可以播放音频但不能播放视频以上是关于.avi 文件视频无法在 MPMoviePlayerController ios 播放器中播放的主要内容,如果未能解决你的问题,请参考以下文章