aardio 文档
aardio 范例: mediaplayer 视频播放器控件
创建控件
import fonts.fontAwesome;
import win.ui;
/*DSG{{*/
var winform = win.form(text="mediaplayer 视频播放器控件";right=896;bottom=662;bgcolor=0xFFFFFF)
winform.add(
btnFullScreen={cls="plus";text='\uF047';left=842;top=627;right=883;bottom=657;color=0x1D93F6;db=1;dr=1;font=LOGFONT(h=-16;name='FontAwesome');notify=1;repeat="center";z=7};
btnPause={cls="plus";text="暂停";left=416;top=629;right=506;bottom=655;align="left";bgcolor=0xFFB0B28F;db=1;disabled=1;dl=1;dr=1;font=LOGFONT(h=-16);iconStyle={align="left";font=LOGFONT(h=-16;name='FontAwesome');padding={left=14;top=2}};iconText='\uF04C';notify=1;textPadding={left=35};z=5};
btnPlay={cls="plus";text="播放";left=533;top=629;right=623;bottom=655;align="left";bgcolor=0xFFB0B28F;db=1;dr=1;font=LOGFONT(h=-16);iconStyle={align="left";font=LOGFONT(h=-16;name='FontAwesome');padding={left=14;top=2}};iconText='\uF04B';notify=1;textPadding={left=35};z=2};
plus2={cls="plus";text='\uF027';left=690;top=632;right=715;bottom=655;color=0x1D93F6;db=1;dr=1;font=LOGFONT(h=-19;name='FontAwesome');repeat="scale";z=4};
progress={cls="plus";left=29;top=612;right=879;bottom=616;bgcolor=0x626163;db=1;dl=1;dr=1;forecolor=0x97F8E5;hide=1;notify=1;z=3};
video={cls="custom";left=30;top=16;right=880;bottom=611;bgcolor=0x000000;db=1;dl=1;dr=1;dt=1;edge=1;z=1};
volume={cls="plus";left=720;top=636;right=836;bottom=648;bgcolor=0xFFD9AB23;border={radius=-1};color=0x005CFF;db=1;dr=1;foreRepeat="expand";foreRight=13;forecolor=0xFF1C77FF;notify=1;paddingBottom=5;paddingTop=5;z=6}
)
/*}}*/
//创建控件
//https://docs.microsoft.com/zh-cn/windows/win32/wmp/object-model-reference-for-scripting
var wmp = winform.video.createEmbedEx("wmplayer.OCX");
//打开音视频触发此事件
wmp.MediaChange = function(item){
winform.progress.setProgressRange(0,wmp.currentMedia.duration);
winform.progress.hide = false;
}
//播放状态变更触发此事件
wmp.PlayStateChange = function(state) {
if(state==3){
winform.btnPause.disabled = false;
winform.btnPlay.checked = true;
}
elseif(state<=1){
winform.btnPause.disabled = true;
winform.btnPause.checked = false;
winform.btnPlay.checked = false;
}
};
//打开视频
wmp.Url = "http://download.aardio.com/demo/video.aardio";
wmp.stretchToFit = true;
wmp.uiMode = "none";//隐藏默认控制条(不支持高分屏,自己实现一个比较好)
//wmp.settings.setMode("loop", true);//循环播放
//暂停按钮事件
winform.btnPause.oncommand = function(id,event){
if(wmp.playState==3){
wmp.Controls.pause();
}
elseif(wmp.playState==2){
wmp.Controls.play();
}
}
//播放按钮事件
winform.btnPlay.oncommand = function(id,event){
if(!winform.btnPlay.checked){
if(wmp.playState>1){
wmp.Controls.stop();
winform.progress.progressPos = 0;
}
return;
}
wmp.Controls.play();
}
//使用定时器同步显示视频进度
winform.setInterval(
function(){
if(winform.btnPlay.checked && !winform.progress.hide){
winform.progress.progressPos = wmp.controls.currentPosition;
}
},200
);
//显示声音大小
winform.volume.setTrackbarRange(1,100);
winform.volume.progressPos = 100;
//调整声音大小
winform.volume.onPosChanged = function( pos,triggeredByUser ){
if(triggeredByUser){
wmp.settings.volume = winform.volume.progressPos;
}
}
//全屏按钮
winform.btnFullScreen.oncommand = function(id,event){
wmp.fullScreen = true;
}
winform.volume.skin({
background={
default=0xFF23ABD9
};
foreground={
default=0xFFFF771C;
hover=0xFFFF6600
};
color={
default=0xFFFF5C00;
hover=0xFFFF6600
}
})
winform.btnPause.skin({
background={
default=0x668FB2B0;
disabled=0xFFCCCCCC;
hover=0xFF928BB3
};
color={
default=0xFF000000;
disabled=0xFF6D6D6D
};
checked = {
iconText = '\uF04B';
text = "继续";
background={
default=0x668FB2B0;
disabled=0xFFCCCCCC;
hover=0xFF928BB3
};
color={
default=0xFF000000;
disabled=0xFF6D6D6D
};
}
})
winform.btnPlay.skin({
background={
default=0x668FB2B0;
disabled=0xFFCCCCCC;
hover=0xFF928BB3
};
color={
default=0xFF000000;
disabled=0xFF6D6D6D
};
checked = {
iconText = '\uF04D';
text = "停止";
background={
default=0x668FB2B0;
disabled=0xFFCCCCCC;
hover=0xFF928BB3
};
color={
default=0xFF000000;
disabled=0xFF6D6D6D
};
}
})
winform.btnFullScreen.skin({
color={
active=0xFF00FF00;
default=0xFFF6931D;
disabled=0xFF6D6D6D;
hover=0xFFFF0000
}
})
winform.show(true)
win.loopMessage();
Markdown 格式