VersaPlayer 3.0.2

VersaPlayer 3.0.2

Jose Quintero 维护。



CI Status Version License Platform

新闻

🎉- 自 2.1.3 版起,VersaPlayer 支持 iOS、macOS 和 tvOS

社区

如果您有任何疑问或需要任何帮助,请前往 Gitter 并在那里提问!

示例

要运行示例项目,请克隆仓库,然后首先从示例目录运行 pod install

安装

CocoaPods 是一个为 Cocoa 项目提供依赖管理的工具。您可以使用以下命令安装:

$ gem install cocoapods

VersaPlayer 通过 CocoaPods 提供。要安装它,请简单地添加以下行到 Podfile:

pod 'VersaPlayer'

Carthage

Carthage 是一个去中心化的依赖管理器,用于构建你的依赖并提供二进制框架。要使用 Carthage 将 Alamofire 集成到你的 Xcode 项目中,请在你的 Cartfile 中指定它。

github "josejuanqm/VersaPlayer" "3.0.0"

使用方法

基本使用

VersaPlayer的目标是简单易用,同时也很灵活。要开始使用 VersaPlayer,首先以编程方式或通过 Storyboard 创建一个视图。然后添加以下几行代码开始播放视频。

    @IBOutlet weak var playerView: VersaPlayerView!

    override func viewDidLoad() {
        super.viewDidLoad()
        if let url = URL.init(string: "http://rmcdn.2mdn.net/Demo/html5/output.mp4") {
            let item = VersaPlayerItem(url: url)
            playerView.set(item: item)
        }
    }

添加控件

要为你的播放器添加控件,请使用 VersaPlayerControls 类,它包含多个输出(outlets)来控制你的播放器,你还可以通过自定义实现添加任意数量的控件。

VersaPlayerControls 类包含了以下控件

控件名称 类型 动作
playPauseButton VersaStatefullButton 切换播放
fullscreenButton VersaStatefullButton 切换全屏模式
pipButton VersaStatefullButton 在支持的设备上切换画中画(PIP)模式
rewindButton VersaStatefullButton 倒放
forwardButton VersaStatefullButton 快进
skipForwardButton VersaStatefullButton 在 skipSize(在 VersaPlayerControls 中找到)指定的秒数内跳过前方的视频时间
skipBackwardButton VersaStatefullButton 在 skipSize(在 VersaPlayerControls 中找到)指定的秒数内跳过后方的视频时间
seekbarSlider VersaSeekbarSlider 在播放过程中进行搜索
currentTimeLabel VersaTimeLabel 指示当前时间
totalTimeLabel VersaTimeLabel 指示总时间
bufferingView UIView 当播放器正在缓冲时显示
    @IBOutlet weak var playerView: VersaPlayerView!
    @IBOutlet weak var controls: VersaPlayerControls!

    override func viewDidLoad() {
        super.viewDidLoad()
        playerView.use(controls: controls)
        if let url = URL.init(string: "http://rmcdn.2mdn.net/Demo/html5/output.mp4") {
            let item = VersaPlayerItem(url: url)
            playerView.set(item: item)
        }
    }

高级使用

DRM

VersaPlayer 还支持加密内容,要使用此功能,必须实现 VersaPlayerDecryptionDelegate 并将其分配给 VersaPlayer 的 decryptionDelegate 属性。

了解更多关于此主题的信息,请访问

https://josejuanqm.github.io/Libraries-Documentation/VersaPlayerCore/Protocols/VersaPlayerDecryptionDelegate.html

轨道

要使用不同的媒体轨道,例如音频、视频或字幕,请使用VersaPlayer类中的VersaPlayerMediaTracks。

更多关于这些属性的信息,请访问

https://josejuanqm.github.io/Libraries-Documentation/VersaPlayerCore/Classes/VersaPlayerMediaTrack.html

音频轨道

音频轨道在处理不同语言时特别有帮助,例如在电影播放时。

要选择音频轨道,只需使用 VersaPlayer 的 audioTracks 属性获取可用轨道。

    @IBOutlet weak var playerView: VersaPlayer!

    ...
    
    let tracks: [VersaPlayerMediaTrack] = playerView.player.currentItem?.audioTracks
    /// the name of the track
    let name = tracks.first?.name
    /// the language of the track
    let name = tracks.first?.language
    /// selecting the first one
    tracks.first?.select(for: playerView.player)
视频轨道

在处理不同的版本或每个视频质量的独立流时,视频轨道非常有用。

要选择视频轨道,只需遵循与音频轨道相同的原则。

    @IBOutlet weak var playerView: VersaPlayer!

    ...
    
    let tracks: [VersaPlayerMediaTrack] = playerView.player.currentItem?.videoTracks
    /// the name of the track
    let name = tracks.first?.name
    /// selecting the first one
    tracks.first?.select(for: playerView.player)
字幕轨道

字幕轨道几乎总是有用的。这可以从电影回放一直到辅助内容都可以使用。

要选择视频轨道,只需遵循与视频和音频轨道相同的原则。

    @IBOutlet weak var playerView: VersaPlayer!

    ...
    
    let tracks: [VersaPlayerMediaTrack] = playerView.player.currentItem?.captionTracks
    /// the name of the track
    let name = tracks.first?.name
    /// the language of the track
    let name = tracks.first?.language
    /// selecting the first one
    tracks.first?.select(for: playerView.player)
字幕样式

字幕样式通常不由用户管理,但在必要时,VersaPlayer中的captionStyling属性会很有用。

探索所有可以在这里更改的可用属性

https://josejuanqm.github.io/Libraries-Documentation/VersaPlayerCore/Classes/VersaPlayerCaptionStyling.html

扩展

Versa项目的目标是可以灵活运用,这就是为什么它带有扩展功能,允许您通过继承VersaPlayerExtension来自定义播放器的任何方面。

这个类包含一个指向正在使用的播放器实例的player属性。要添加扩展,请使用在https://josejuanqm.github.io/Libraries-Documentation/VersaPlayerCore/Classes/VersaPlayer.html中找到的add(extension ext:)方法。

以下是一些可能对您有用的VersaPlayer扩展。

  1. AirPlay扩展

  2. 广告扩展

  3. 叠加内容扩展

文档

完整文档可在https://josejuanqm.github.io/Libraries-Documentation/VersaPlayerCore/找到

作者

Jose Quintero - [email protected]

贡献者

使VersaPlayer成为可能的人们,谢谢你们!

josejuanqm pbeast danibachar HuseyinVural

捐赠

如果您喜欢这个项目或者这个项目对您有帮助,您可以为我的咖啡☕点个赞哦!非常感谢!

paypal

许可证

VersaPlayer是在MIT许可证下可用的。有关更多信息,请参阅LICENSE文件。