Video
是ArkUI开发框架提供的一个视频播放组件,我们可以使用该组件实现播放视频相关的功能,本节笔者简单介绍一下 Video
的使用。
Video定义介绍
interface VideoInterface {
(value: VideoOptions): VideoAttribute;// Video创建需要传递一个必要参数value
}
declare interface VideoOptions {
src?: string | Resource;
currentProgressRate?: number | string | PlaybackSpeed;
previewUri?: string | PixelMap | Resource;
controller?: VideoController;
}
- value:对播放视频相关设置,
VideoOptions
参数说明如下:- src:设置视频地址。
- currentProgressRate:设置视频播放倍速,参数说明如下:
- number|string:只支持
0.75
,1.0
,1.25
,1.75
,2.0
。 - PlaybackSpeed:对 number | string 的封装,防止用户传错参数的。
- number|string:只支持
- previewUri:视频封面图的路径。
- controller:设置视频播放的控制器,比如控制视频开始,暂停等。
Video属性介绍
declare class VideoAttribute extends CommonMethod<VideoAttribute> {
muted(value: boolean): VideoAttribute;
autoPlay(value: boolean): VideoAttribute;
controls(value: boolean): VideoAttribute;
loop(value: boolean): VideoAttribute;
objectFit(value: ImageFit): VideoAttribute;
}
- muted:设置视频是否静音。
- autoPlay:设置视频是否自动播放。
- controls:设置是否显示控制视频播放的控制条。
- objectFit:设置视频画面的拉伸样式,详见
Image
组件的ImageFit
属性。 - loop:设置视频是否循环播放。
Video事件介绍
declare class VideoAttribute extends CommonMethod<VideoAttribute> {
onStart(event: () => void): VideoAttribute;
onPause(event: () => void): VideoAttribute;
onFinish(event: () => void): VideoAttribute;
onFullscreenChange(callback: (event?: { fullscreen: boolean }) => void): VideoAttribute;
onPrepared(callback: (event?: { duration: number }) => void): VideoAttribute;
onSeeking(callback: (event?: { time: number }) => void): VideoAttribute;
onSeeked(callback: (event?: { time: number }) => void): VideoAttribute;
onUpdate(callback: (event?: { time: number }) => void): VideoAttribute;
onError(event: () => void): VideoAttribute;
}
完整样例演示
@Entry @Component struct ArkUIClubTest {
private videoController: VideoController = new VideoController()
build() {
Column({space: 10}) {
Video({
src: $rawfile("test_video.mp4"), // 设置数据源
previewUri: "https://www.arkui.club/img/test.png", // 设置封面图片
controller: this.videoController // 设置控制器
})
.width(300)
.height(210)
Row({space: 10}) {
Button("开始播放")
.onClick(() => {
this.videoController.start()
})
Button("暂停播放")
.onClick(() => {
this.videoController.pause()
})
Button("继续播放")
.onClick(() => {
this.videoController.start()
})
}
Row() {
Button("全屏播放")
.onClick(() => {
this.videoController.requestFullscreen(true)
})
Button("退出全屏")
.onClick(() => {
this.videoController.exitFullscreen()
})
}
}
.width("100%")
.height("100%")
}
}
样例运行结果如下图所示:
码牛课堂也为了积极培养鸿蒙生态人才,让大家都能学习到鸿蒙开发最新的技术,针对一些在职人员、0基础小白、应届生/计算机专业、鸿蒙爱好者等人群,整理了一套纯血版鸿蒙(HarmonyOS Next)全栈开发技术的学习路线。大家可以进行参考学习:https://qr21.cn/FV7h05
①全方位,更合理的学习路径:
路线图包括ArkTS基础语法、鸿蒙应用APP开发、鸿蒙能力集APP开发、次开发多端部署开发、物联网开发等九大模块,六大实战项目贯穿始终,由浅入深,层层递进,深入理解鸿蒙开发原理!②多层次,更多的鸿蒙原生应用:
路线图将包含完全基于鸿蒙内核开发的应用,比如一次开发多端部署、自由流转、元服务、端云一体化等,多方位的学习内容让学生能够高效掌握鸿蒙开发,少走弯路,真正理解并应用鸿蒙的核心技术和理念。③实战化,更贴合企业需求的技术点:
学习路线图中的每一个技术点都能够紧贴企业需求,经过多次真实实践,每一个知识点、每一个项目,都是码牛课堂鸿蒙研发团队精心打磨和深度解析的成果,注重对学生的细致教学,每一步都确保学生能够真正理解和掌握。
为了能让大家更好的学习鸿蒙(HarmonyOS NEXT)开发技术,这边特意整理了《鸿蒙开发学习手册》(共计890页),希望对大家有所帮助:https://qr21.cn/FV7h05
《鸿蒙开发学习手册》:https://qr21.cn/FV7h05
如何快速入门:
- 基本概念
- 构建第一个ArkTS应用
- ……
开发基础知识:https://qr21.cn/FV7h05
- 应用基础知识
- 配置文件
- 应用数据管理
- 应用安全管理
- 应用隐私保护
- 三方应用调用管控机制
- 资源分类与访问
- 学习ArkTS语言
- ……
基于ArkTS 开发:https://qr21.cn/FV7h05
- Ability开发
- UI开发
- 公共事件与通知
- 窗口管理
- 媒体
- 安全
- 网络与链接
- 电话服务
- 数据管理
- 后台任务(Background Task)管理
- 设备管理
- 设备使用信息统计
- DFX
- 国际化开发
- 折叠屏系列
- ……
鸿蒙开发面试真题(含参考答案):https://qr21.cn/FV7h05
大厂鸿蒙面试题::https://qr18.cn/F781PH
鸿蒙开发面试大盘集篇(共计319页):https://qr18.cn/F781PH
1.项目开发必备面试题
2.性能优化方向
3.架构方向
4.鸿蒙开发系统底层方向
5.鸿蒙音视频开发方向
6.鸿蒙车载开发方向
7.鸿蒙南向开发方向