VEVodDemo-android 是火山引擎视频云点播 SDK Android 端的开源 Demo. 我们提供了
场景控件层(vod-scenekit)
帮助业务快速搭建常见的点播场景。
Demo 中实现了常见的三种播放场景:
- 短视频场景(Short Video)- 类抖音首页竖版视频场景
- 中视频场景(Feed Video) - 类西瓜视频 Feed 视频流场景
- 长视频场景(Long Video) - 类爱奇艺/腾讯视频/优酷视频的电视剧/电影场景
针对短视频、中视频场景,我们提供了 短视频场景控件
、中视频场景控件
进一步简化接入。 业务可将 vod-scenekit
模块引入工程,添加数据源即可快速搭建播放场景。无需关心播放器如何使用。
|--VEVodDemo-android
|--|--app // 主 app (壳工程)
|--|--vod-demo-api // vod-demo 模块与壳工程交互接口(组件化)
|--|--vod-demo // 业务 demo 层
|--|--vod-scenekit // 场景控件层
|--|--vod-playerkit // 播放控件层
|--|--vod-settingskit // 播放设置模块
- Demo 需要设置 AppId 和 License 才能成功运行,否则会抛出异常。 请联系火山引擎商务获取体验 License 文件和 AppId。获取到 License 文件后请将 License 放置在 app 的 assets 文件夹中。
设置方式:
修改 VEVodDemo-android/app/src/main/java/com/bytedance/volc/voddemo/App.java
public class App extends Application {
private static final String APP_ID = "your app id";
// 比如:VEVodDemo-android/app/src/main/assets/license2/vod.lic 路径下的 assets uri 对应为:assets:///license2/vod.lic
private static final String LICENSE_URI = "your license assets uri";
// ... 省略
}
- Android Studio 打开
VEVodDemo-android
文件夹,点击运行app
.
我们提供了三种接入方式,接入方可以根据自己使用场景,选择接入。
接入建议:
- 复用业务已有 短视频流 / Feed 流?
- 是 - 看问题 2
- 否 - 使用 场景控件层接入
- 复用业务已有视频控件 UI 代码和播放器封装层代码?
- 是 - 使用 播放器 SDK 接入
- 否 - 使用 播放控件层接入
Tips:依赖图 + 核心类的关系可以帮助开发者快速熟悉 Demo 工程结构!
业务 Demo 层(vod-demo)
场景页面 = 场景控件 + 业务 API 数据获取
- 短视频页面 - ShortVideoFragment
- 中视频页面 - FeedVideoFragment
- 长视频页面 - LongVideoFragment
- 视频详情页面 - DetailVideoFragment
场景控件层 (vod-scenekit)
场景控件 = 页面控件 + 下拉刷新控件 + 上拉加载控件
- 短视频场景控件 - ShortVideoSceneView
- 中视频场景控件 - FeedVideoSceneView
页面控件 = RecyclerView/ViewPager2 + 播放控件
- 短视频页面控件 - ShortVideoPageView
- 中视频页面控件 - FeedVideoPageView
播放控件层 (vod-playerkit)
播放器接口层 (vod-player)
- 播放源 - MediaSource
- 播放器 - Player
- 播放器默认实现 - AVPlayer
- 视频控件 - VideoView
- 播放流程 - PlaybackController
- 播放浮层 - VideoLayer
- 浮层管理 - VideoLayerHost
火山引擎播放器实现层 (vod-player-volcengine)
- 火山播放内核封装 - VolcPlayer
- 火山播放内核工厂 - TTVideoEngineFactory
- SDK 初始化 - VolcPlayerInit
- 播放器全局配置 - VolcConfigGlobal
- 播放器实例配置 - VolcConfig
有任何问题可以提交 github issue,我们会定期 check 解决。
暂不接受 PullRequests。
Copyright 2021 bytedance
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.