You need to enable JavaScript to run this app.
导航
跑通 Demo
最近更新时间:2025.04.16 14:56:53首次发布时间:2022.11.01 20:47:17
我的收藏
有用
有用
无用
无用

火山引擎视频点播提供开源 Demo VEVodDemo-iOS,包含常见播放场景的完整源码。在集成播放器 SDK 之前,建议您先参照本文跑通 Demo,体验播放器 SDK 的功能。

Demo 介绍

播放场景

开源 Demo 中实现了以下播放场景:

  • 短剧:每集时长从几十秒到 15 分钟左右,内容一般是连续和完整的故事情节,采用竖屏沉浸式全屏播放样式。用户可通过上下滑动切换剧集,也可通过点击集数切换到指定剧集。
  • 短视频:类似于抖音的场景,一屏只展示一个视频,用户可通过上下滑动来切换浏览不同的短视频内容。
  • 中视频:类似于西瓜视频横屏播放的场景,Feed 流中同时存在 2 个以上的视频,用户可以快速滑动浏览多个视频,每次滑动可能划过多个视频。
  • 长视频:提供沉浸式的全屏播放场景和播放页场景,适用于播放影视、综艺等长时间的视频内容。

目录结构

开源 Demo 对播放器 SDK 进行了封装,抽象出播放控件层框架,封装完整播放能力和播放 UI 框架,可以帮助开发者根据需求快速构建播放页面。在播放控件层的基础上,根据常见播放场景的需求,提供短剧、短视频、中视频、长视频等常用场景模块。您可根据自身业务需求,便捷地集成和使用这些控件层。开源 Demo 的具体目录结构如下:

├─ VOLCDemo 
└── VOLCDemo
    ├── Base    // AppDelegate 等 App 基本文件
└── Pods
    ├── TTSDK   // 火山引擎 SDK(播放器 SDK 载体)
        ...
    ├── VEVodMain           // App 入口(VEMainViewController)
    ├── VEBaseKit           // 基础组件
    ├── VEPlayerKit         // 播放控件
    ├── VEPlayerUIModule    // 播放 UI 控件封装层(旧的 UI 框架将废弃)
    ├── VESceneModule       // 场景模块(短、中、长视频模块示例, 新版本新增短剧场景)    

Demo 体验

请前往 Demo 体验页面,扫描二维码安装体验。

开发环境要求

  • Xcode 或其他可识别 xcodeproj 格式的 IDE。推荐使用最新版本。
  • iOS 11.0 及以上版本。
  • 建议使用真实设备进行开发和调试。模拟器与真实设备在播放和渲染方面存在细微差异,表现可能不一致。

获取 License

视频点播通过 License 管理播放器 SDK 及其增值服务的使用权限和时间。在项目测试阶段,您可以在视频点播控制台申请免费的测试 License。您需完成以下操作:

注意

测试 License 仅限项目测试阶段使用,不可续期。测试 License 到期会导致鉴权失败,进而影响业务的正常使用。项目上线前,请升级至正式 License

操作步骤

  1. 在终端中运行以下命令克隆仓库到本地,并进入项目文件夹:

    git clone https://github.com/volcengine/VEVodDemo-iOS.git
    cd VEVodDemo-iOS
    
  2. 执行以下命令。执行成功后使用 Xcode 打开 VOLCDemo.xcworkspace 工程文件。

    pod install --repo-update
    
  3. 将下载至本地的 License 文件导入到工程中,位置如下图所示:
    Image

  4. AppDelegate.m 文件中,修改 appIdlicenseName 的值。

    - (void)initTTSDK {
    #ifdef DEBUG
        /// 建议 Debug 期间打开 Log 开关
        [TTVideoEngine setLogFlag:TTVideoEngineLogFlagAll];
    #endif
        
        // 替换成您在视频点播控制台中复制的应用 ID
        NSString *appId = @"your app id";
        // 替换成实际的 License 文件名称
        NSString *licenseName = @"your license file name";
        if (appId.length == 0 || licenseName.length == 0) {
            UIAlertController *alert = [UIAlertController alertControllerWithTitle:nil message:NSLocalizedStringFromTable(@"tip_license_required", @"VodLocalizable", nil) preferredStyle:UIAlertControllerStyleAlert];
            UIAlertAction *vidSource = [UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
                exit(0);
            }];
            [alert addAction:vidSource];
            [self.window.rootViewController presentViewController:alert animated:YES completion:nil];
            return;
        }
        // ...
    }
    
  5. 修改 Demo 的 Bundle Identifier,确保与您在视频点播控制台创建应用时填写的 Bundle ID 保持一致。
    Image

  6. 单击 Build 图标开始编译项目。编译成功后,将在您的 iOS 设备上自动打开如下界面。
    Image

后续集成方式

火山引擎提供播放器 SDK、播放控件、场景控件三种方式实现播放场景。您可根据具体情况灵活选择适合自己的集成方式:

  • 对于成熟的视频业务,您可复用已有业务层代码,直接集成播放器 SDK,更换播放内核,以最小的改动来实现迁移。
  • 对于全新的视频业务,建议接入播放控件 PlayerKit场景控件 SceneKit,快速搭建短、中、长视频的播放场景。
  • 针对短剧场景提供短剧 Demo,基于短视频场景控件,支持防录屏、剧集切换、无缝续播、付费解锁等短剧特色功能,适用于开发新 App、可切换业务接口层逻辑的客户,最快一周上线。