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 格式