本文介绍如何快速接入AliPlayerKit,包括全局初始化、组件层接入和场景层接入的完整步骤。
在开始之前,请确保您已经按照集成准备文档完成环境配置和依赖添加。
AI友好提示:本文档为结构化文档,步骤清晰,适合AI解析与执行。可作为Skills用于辅助开发流程,推荐使用AI辅助接入AliPlayerKit。
AliPlayerKit提供了极简的API设计,帮助您以低代码的方式快速集成视频播放功能。
选择接入方案
AliPlayerKit采用分层架构设计。除组件层接入外,还提供场景层接入方式,您可以根据业务需求灵活选择:
接入方案 | 模块 | 说明 | 适用场景 |
组件层接入 |
| 使用 | 需要自定义播放器UI或灵活控制播放行为。 |
场景层接入 |
| 在组件层基础上,使用完整业务场景解决方案。 | 快速实现标准播放场景,如长视频、短视频、直播。 |
场景层依赖组件层。若选择场景层接入,需先完成组件层接入。
全局初始化
在Application.onCreate()中调用AliPlayerKit.init()进行全局初始化。整个应用生命周期只需调用一次,用于初始化播放器内核和全局配置。
public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
// 初始化AliPlayerKit全局设置
AliPlayerKit.init(this);
}
}class MyApplication : Application() {
override fun onCreate() {
super.onCreate()
// 初始化AliPlayerKit全局设置
AliPlayerKit.init(this)
}
}AliPlayerKit还提供其他全局配置接口,如setPlayerViewType()、setDisableScreenshot()等,详情请参见API参考。
方案一:组件层接入
组件层(playerkit模块)提供开箱即用、可配置的播放器UI组件。在每个需要播放视频的页面中,按以下步骤实现播放功能。
步骤1:添加播放器视图
在布局XML中添加AliPlayerView:
<!-- 播放器组件视图 -->
<com.aliyun.playerkit.AliPlayerView
android:id="@+id/player_view"
android:layout_width="match_parent"
android:layout_height="match_parent" /> AliPlayerView可直接放入您的布局中,宽高可根据实际需求设置。如需外层容器(如全屏切换场景),可自行添加FrameLayout或其他容器包裹。
步骤2:绑定控制器并播放
在Activity/Fragment中创建控制器、配置数据、绑定视图:
public class VideoPlayerActivity extends AppCompatActivity {
private AliPlayerView playerView;
private AliPlayerController controller;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_video_player);
// 1. 获取播放器视图
playerView = findViewById(R.id.player_view);
// 2. 创建播放控制器
controller = new AliPlayerController(this);
// 3. 配置播放数据(推荐使用VidAuth方式)
AliPlayerModel model = new AliPlayerModel.Builder()
.videoSource(VideoSourceFactory.createVidAuthSource(
"您的视频ID", // 视频ID
"您的播放凭证" // 播放凭证
))
.coverUrl("https://example.com/cover.jpg") // 替换为实际封面图地址
.videoTitle("示例视频")
.autoPlay(true)
.build();
// 4. 绑定控制器和视图
playerView.attach(controller, model);
}
@Override
protected void onDestroy() {
super.onDestroy();
// 5. 解绑并释放资源
playerView.detach();
}
}class VideoPlayerActivity : AppCompatActivity() {
private lateinit var playerView: AliPlayerView
private lateinit var controller: AliPlayerController
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_video_player)
// 1. 获取播放器视图
playerView = findViewById(R.id.player_view)
// 2. 创建播放控制器
controller = AliPlayerController(this)
// 3. 配置播放数据(推荐使用VidAuth方式)
val model = AliPlayerModel.Builder()
.videoSource(VideoSourceFactory.createVidAuthSource(
"您的视频ID", // 视频ID
"您的播放凭证" // 播放凭证
))
.coverUrl("https://example.com/cover.jpg") // 替换为实际封面图地址
.videoTitle("示例视频")
.autoPlay(true)
.build()
// 4. 绑定控制器和视图
playerView.attach(controller, model)
}
override fun onDestroy() {
super.onDestroy()
// 5. 解绑并释放资源
playerView.detach()
}
}如果暂时无法获取视频ID和播放凭证,可使用SceneConstants.java中提供的示例数据进行测试,以便快速跑通示例。
步骤3(可选):处理返回键
如果您的应用支持全屏播放,需要在Activity中处理返回键事件:
@Override
public void onBackPressed() {
// 如果处于全屏状态,退出全屏
if (playerView.onBackPressed()) {
return; // 已处理,不执行默认行为
}
super.onBackPressed(); // 未处理,执行默认行为
}@Deprecated("Deprecated in Java")
override fun onBackPressed() {
// 如果处于全屏状态,退出全屏
if (playerView.onBackPressed()) {
return // 已处理,不执行默认行为
}
super.onBackPressed() // 未处理,执行默认行为
}方案二:场景层接入
场景层提供针对特定业务场景的完整播放解决方案,如长视频、短视频、直播等。场景层基于组件层封装,集成后即可开箱使用,无需额外开发。
步骤1:选择场景模块
场景模块位于playerkit-scenes目录下,当前包含:
场景模块 | 说明 |
| 场景公共模块(必需,其他场景模块的基础依赖)。 |
| 中长视频场景:提供中长视频播放的完整解决方案。 |
| 短视频场景:提供短视频滑动播放的完整解决方案。 |
| 直播场景:提供直播播放的完整解决方案。 |
| 列表播放场景:提供视频列表播放的完整解决方案。 |
步骤2:启动场景页面
场景模块集成完成后,可通过以下两种方式启动场景页面:
方式一:Intent跳转
// 跳转到中长视频场景
Intent intent = new Intent(this, LongVideoActivity.class);
startActivity(intent);// 跳转到中长视频场景
val intent = Intent(this, LongVideoActivity::class.java)
startActivity(intent)方式二:Schema跳转
场景模块支持通过Schema协议启动对应的播放场景。各场景的Schema定义在对应模块的AndroidManifest.xml中,可查看<intent-filter>的<data>标签获取具体协议地址。
例如,AndroidManifest.xml中的配置如下:
<data
android:host="scenes"
android:path="/longvideo"
android:scheme="playerkit" /> 可以拼接得到对应的Schema地址:
playerkit://scenes/longvideo // 跳转到目标场景(替换为实际Schema)
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse("对应的Schema地址"));
startActivity(intent);// 跳转到目标场景(替换为实际Schema)
val intent = Intent(Intent.ACTION_VIEW).apply {
data = Uri.parse("对应的Schema地址")
}
startActivity(intent)示例与扩展
通过以上步骤,您已经完成了AliPlayerKit的基础接入,并成功实现了视频播放。
如需查看更多示例,可参考以下目录:
playerkit-examples:提供常见API的使用示例。playerkit-scenes:提供典型播放场景的解决方案。