VeesoPlayer 2.1

VeesoPlayer 2.1

测试已测试
Lang语言 Obj-CObjective C
许可 商业
发布最后发布2016年1月

Gabi DobocanOvidiu D. Nitan 维护。



 
依赖
KAProgressLabel~> 3.0
TBXML~> 1.5
TSMiniWebBrowser>= 0
 

  • Veeso

关于

Veeplay 媒体播放器允许您

  • 创建同步视频和叠加的视频播放列表
  • 从外部 JSON 文件、等效的 NSDictionary 结构或直接通过代码属性配置播放列表
  • 创建自定义的本地叠加
  • 自动配置线性插播(预、中、后广告)以及非线性插播(横幅叠加),符合 VAST 1.0、2.0、3.0 和 VMAP 1.0
  • 创建自定义播放器皮肤,使用徽标品牌播放器,插入叠加故障,自定义播放器控件
  • 实时跟踪视频和叠加的生命周期事件,正如渲染

演示

安装cocoapods,然后运行

pod try Veeplay

安装

目前有两条集成路径:通过 CocoaPods 或通过标准库下载。

  1. 通过 CocoaPods 安装(推荐)

    • 将以下行添加到 podfile 中

      pod 'Veeplay'
      
    • 运行 pod install 以安装播放器和所有依赖。运行 pod update 以保持库更新。

  2. 通过库下载安装

    • MediaPlayer.frameworkAVFoundation.frameworkCoreMedia.frameworkSystemConfiguration.frameworklibz.dylib 添加到您的项目中。

      • 在项目设置屏幕中选择您的目标。
      • 选择“构建阶段”选项卡。
      • 展开“链接二进制与库”区域。
      • 单击“+”按钮,并将 MediaPlayer.frameworkAVFoundation.frameworklibz.dylib 添加到项目中。
    • 将播放器的静态库添加到您的项目中。

      • 将“libVeeplay.a”文件拖到您的项目中。
      • 在提示时,请确保选择应链接到静态库的项目目标。
      • 在项目设置屏幕中选择您的目标。
      • 选择“构建设置”选项卡。
      • 搜索“其他链接器标志”,并确保存在“-ObjC”标志。如果不存在,请添加。
      • 搜索“iOS 部署目标”,并确保将其设置为 iOS 5 及以上(iOS < 5 不受支持)。
    • 将播放器的头文件添加到您的项目中。

      • 将“headers”文件夹中的所有头文件拖入您的 Xcode 项目中 OR

      • 在项目设置屏幕中选择您的目标。

      • 选择“构建设置”选项卡。
      • 搜索“头文件搜索路径”,并确保所有头文件都在 Xcode 知道的位置。
    • 将播放器的资源文件添加到您的项目中。

      • 将“Assets”文件夹中的所有文件拖到您的Xcode项目中。
      • 提示时,请确保选中应包含资源的项目目标。

入门

http://panel.veeso.co 上设置账户,并将应用程序的包标识符添加到“许可证管理”下。

导入玩家的头文件,以及VAST/VMAP或其他插件

#import "APSMediaPlayer.h" 
#import "APSVASTMediaBuilderPlugin.h"

创建一个新的APSMediaBuilder实例,并根据需要添加插件作为APSMediaUnit

APSMediaBuilder *builder = [[APSMediaBuilder alloc] init]; 
[builder addPlugin:[[APSVASTMediaBuilderPlugin alloc] init]]; 

可选地,将APSMediaUnit的debugMode标志设置为YES以启用控制台记录

builder.debugMode = YES;

将媒体播放器添加到一个视图中

[APSMediaPlayer sharedInstance].view.frame = CGRectMake(5, 5, 310, 450); 
[self.view addSubview:[APSMediaPlayer sharedInstance].view];

下一步是为播放器创建一个APSMediaUnit播放列表。这是builder对象所做的工作;它就像一个可配置的APSMediaUnitAPSMediaOverlay工厂。可以通过指定指向JSON配置文件的URL或在NSDictionary容器中提供类似的配置结构来完成配置。

由于远程配置涉及网络请求的过程,因此构建器公开了异步配置方法

[builder configureFromURL:[NSURL URLWithString:@"http://example.com/player.json"] onComplete:^ {
    // TODO: Request and play media units here
}];

在这个点上,构建器已配置好,并能够生成一个用于播放的媒体单元数组。然而,在请求单位时,像APSVASTMediaBuilderPlugin这样的插件需要进行额外的网络请求以工作。因此,又一次,有了一个异步的单位检索方法

[builder configureFromURL:[NSURL URLWithString:@"http://example.com/player.json"] onComplete:^ {
    [builder requestMediaUnitsWithCompletionBlock:^(NSArray *units) {
        [[APSMediaPlayer sharedInstance] playMediaUnits:units];
    }];
}];

在最后执行块中,我们指示播放器使用通过JSON输入远程配置的最终生成的媒体单元数组开始播放

从JSON配置

有关所有可用配置选项和示例的说明,请参阅本指南

创建自定义覆盖控制器

APSMediaPlayer允许开发者创建自己的、通过JSON或字典配置的覆盖。要创建一个自定义覆盖

  • 创建一个新的类,它继承自APSMediaPlayerOverlayController,后者本身是UIViewController的子类。
  • 实现[KRAdapter type],返回一个唯一字符串,用于标识覆盖。此字符串也用于配置字典中。
  • 实现[APSMediaPlayerOverlayControllerProtocol load],以执行自定义覆盖创建代码。此方法由播放器在首次显示覆盖控制器对象时调用。您可以使用self.overlay.parameters访问在JSON或NSDictionary配置中定义的配置参数。您还可以使用self.overlay.parentUnit访问有关当前正在运行的单元的信息。
  • 根据需要实现任何其他协议定义的方法,请参阅APSMediaPlayerOverlayControllerProtocol以获取完整列表。
  • 将新创建的类注册到播放器

    [[APSMediaPlayer sharedInstance] registerClass:[CLASSNAME class] inGroup:kAPSMediaPlayerOverlayControllersGroup type:@"TYPE"];
    

使用Chromecast

您可以通过在JSON配置文件的controls部分的组件数组中添加chromecast来启用Chromecast播放。

    {
            "content": [
                    "url": "http://......",
                    "autoplay": true,
                    "controls": {
                            "components": [
                                    "playback",
                                    "totalTime",
                                    "slider",
                                    "currentTime",
                                    "chromecast"
                            ]
                    }
            ]
    }

此外,您还可以通过将APSCastChromecastControl添加到APSMediaUnitcontrolsParameters属性来进行程序化配置

    unit.controlsParameters = @{kAPSControlsComponents: @(APSPlaybackControl|APSCurrentTimeControl|APSTimeSliderControl|APSTotalTimeControl|APSChromecastControl|APSFullScreenControl)};

使用DRM

APSMediaPlayer支持Marlin DRM,使用ExpressPlay提供的SDK。要安装

  • 安装ExpressPlay SDK。
  • 将以下行添加到Podfile

    pod "VeeplayMarlinManager"
    
  • 如果在没有CocoaPods的情况下安装,从存储库中获取最新的静态库和头文件。

  • 导入VeeplayMarlinManager头文件

    #import "VeeplayMarlinManager.h"
    
  • 实例化一个Marlin管理器对象并将它注册到播放器

    VeeplayMarlinManager *marlinManager = [[VeeplayMarlinManager alloc] init];
    [[APSMediaPlayer sharedInstance] registerUnitManager:marlinManager];
    
  • APSMediaUnit对象的managerType属性设置为@"marlin"

  • 可选地,要使播放器下载并将宽带许可证添加到本地存储,可以将在项目项的metadata字典中的kAPSMetadataDrmUrl键设置为许可证文件字符串URL。要从JSON配置,设置drm_encoding_url元数据键。

示例单元配置

  • 程序化配置单元

    APSMediaUnit *unit = [[APSMediaUnit alloc] init];
    unit.url = [NSURL URLWithString:@"http://url.to/your-protected-media"];
    unit.managerType = kVeeplayMarlinDRMEncoding;
    unit.metadata = [NSMutableDictionary dictionaryWithDictionary: @{ kAPSMetadataDrmUrl: @"http://url.to/marlin-broadband-key" }];
    
  • 从JSON配置单元

    {
            "url": "http://url.to/your-protected-media",
            "manager": "marlin",
            "metadata": {
                    "drm_encoding_url": "http://url.to/marlin-broadband-key"
            }
    }
    

类参考

查看完整的类参考此处

代码示例

在这里查看一个展示代码示例的项目,这些示例涵盖了各种播放场景此处

如果您已安装CocoaPods,可以在您的Terminal中输入pod try Veeplay来立即查看Veeplay播放器的演示。

要求

APSMediaPlayer依赖于以下捐赠许可的pods安装作为依赖项

作者

Appscend Video Solutions GmbH

许可证

商业许可证。请联系[email protected]