#案例-简易播放器
- 更新时间:2026-03-17 19:34:33
本示例将展示一个简单的播放器
#Xml代码
<ui>
<statusbar/>
<linear w="max" h="max" gravity="center">
<!--视频:当使用约束布局的时候,视频可以被展开,但未必是全屏的
path:可以指定相对路径,也可以指定绝对路径
autoStart:当视频加载完成之后,会自动播放视频
loop:是否循环播放视频
-->
<video autoStart="true" id="video" loop="true"
path="video.mp4" w="max"/>
<!--跳转到指定的视频位置进行播放-->
<slider w="max" id="slide" />
<!--
播放/暂停
ic_play_arrow_fill
ic_pause_outline
-->
<button id="play" style="icon" icon="ic_pause_outline" />
</linear>
</ui>#JS代码
let ui = $ui.layout("main.xml");
let mAppbar = ui.id("mAppbar");
if (mAppbar != null) {
mAppbar.back(() => {
ui.finish();
});
}
let video = ui.id("video");
let slide = ui.id("slide");
let play = ui.id("play");
//监听(人手滑动)
slide.onChange((val)=>{
//video 跳转 不准确性
video.seekTo(val);
});
play.click(() => {
if (video.isPlaying()) {
//暂停播放
video.pause();
play.setIcon("ic_play_arrow_fill");
} else {
//开始播放
video.start();
play.setIcon("ic_pause_outline");
}
});
var intervalId = setInterval(()=>{
if(video.isPlaying()){
slide.setTo(video.getDur());//最大值 视频的总时长
slide.setValue(video.getCur());//当前值 视频当前的进度
}
},10);
ui.onDestroy((activity)=>{
//释放循环器
clearInterval(intervalId);
});
//最好放在最后显示主界面
ui.show();