如何使用 AVPlayer 播放视频?
Posted
技术标签:
【中文标题】如何使用 AVPlayer 播放视频?【英文标题】:How can I play a video using AVPlayer? 【发布时间】:2017-02-23 08:18:04 【问题描述】:Apple Swift 版本 3.0.2 (swiftlang-800.0.63 clang-800.0.42.1)
我想使用 AVPlayer 播放来自互联网的视频。 但是,在下面源列表的 AVPlayer.swift 中发生了错误“super.init(frame:frame)”。
线程 1:EXC_BAD_ACCESS(代码=2,地址=0x16fc07fe0)
如果除了错误点之外还有错误点,也请告诉我。
AVPlayerView.swift
import Foundation
import UIKit
final class AVPlayerView : UIView
required init(coder aDecoder: NSCoder)
super.init(coder: aDecoder)!
override init(frame: CGRect)
super.init(frame: frame)
override public class var layerClass: Swift.AnyClass
get
return AVPlayerView.self
ViewController.swift
import UIKit
import AVFoundation
import CoreMedia
class ViewController: UIViewController
var playerItem : AVPlayerItem!
var videoPlayer : AVPlayer!
override func viewDidLoad()
super.viewDidLoad()
let url:NSURL = NSURL(string: "https://aaa.com/test.m3u8")!
let avAsset = AVURLAsset(url: url as URL, options: nil)
playerItem = AVPlayerItem(asset: avAsset)
videoPlayer = AVPlayer(playerItem: playerItem)
print(self.view.bounds)
let videoPlayerView = AVPlayerView(frame: self.view.bounds)
let layer = videoPlayerView.layer as! AVPlayerLayer
layer.videoGravity = AVLayerVideoGravityResizeAspect
layer.player = videoPlayer
self.view.layer.addSublayer(layer)
videoPlayer.play()
override func didReceiveMemoryWarning()
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
【问题讨论】:
【参考方案1】:这是播放视频的代码:
let videoURL = NSURL(string: "PUT_YOUR_PROPER_URL")
let playerAV = AVPlayer(url: videoURL! as URL)
let playerLayerAV = AVPlayerLayer(player: playerAV)
playerLayerAV.frame = self.view.bounds
self.view.layer.addSublayer(playerLayerAV)
playerAV.play()
AVPlayer 支持以下扩展:
public.mpeg
public.mpeg-2-video
public.avi
public.aifc-audio
public.aac-audio
public.mpeg-4
public.au-audio
public.aiff-audio
public.mp2
public.3gpp2
public.ac3-audio
public.mp3
public.mpeg-2-transport-stream
public.3gpp
public.mpeg-4-audio
确保您可以在 AVPlayer 中使用支持的视频。
【讨论】:
AVPlayer是否支持m3u8的http直播? HLS 包含 H.264 和 aac 的 ts 文件。 是的,网址已更改。 iPhone的浏览器可以播放网址。 我可以播放 m3u8 视频流。 谢谢!我尝试播放 .mov 的时间最长,但事实证明,我也没有设置 AVPlayerLayer 的帧。以上是关于如何使用 AVPlayer 播放视频?的主要内容,如果未能解决你的问题,请参考以下文章