aardio 文档

aardio 范例: 播放声音

峰鸣器奏乐

//播放声音
import fsys.dlg;
import win.ui;
/*DSG{{*/
var winform = win.form(text="播放声音";right=506;bottom=186;border="dialog frame";max=false;min=false)
winform.add(
btnActiveMovie={cls="button";text="ActiveMovie 播放声音";left=273;top=74;right=482;bottom=106;z=5};
btnMessageBeep={cls="button";text="系统警报声";left=29;top=132;right=171;bottom=164;z=2};
btnMp3={cls="button";text="播放 MP3";left=29;top=19;right=171;bottom=51;z=4};
btnWav={cls="button";text="播放 WAV 文件";left=188;top=19;right=330;bottom=51;z=3};
btnWmpOcx={cls="button";text="WMPlayer.OCX 播放网络 MP3";left=29;top=74;right=260;bottom=106;z=1}
)
/*}}*/

import fsys.media;
winform.btnWav.oncommand = function(id,event){

    var path = fsys.dlg.open("*.wav|*.wav||");
    if(!path) return;

    import fsys.media;
    fsys.media.playSound(path);
}

import fsys.media;
winform.btnMp3.oncommand = function(id,event){

    var path = fsys.dlg.open("*.mp3|*.mp3||");
    if(!path) return;

    if(mediaFile) {
        mediaFile.stop();
    }

    mediaFile = fsys.media(path);
    if(mediaFile) {
        mediaFile.play();
    }
}

winform.btnWmpOcx.oncommand = function(id,event){

    /*
    参考:https://docs.microsoft.com/zh-cn/windows/win32/wmp/object-model-reference-for-scripting
    WMPlayer.OCX 只能用于界面线程,可用 := 操作符避免重复创建对象。
    */
    ..wmPlayer := com.CreateObject("WMPlayer.OCX");  

    //使用 COM 对象打开指定的音频
    ..wmPlayer.url = "http://download.aardio.com/v10.files/demo/mp3/lrc.mp3"
}

winform.btnActiveMovie.oncommand = function(id,event){

    var path = fsys.dlg.open("*.mp3|*.mp3||");
    if(!path) return;

    //参考接口定义:"\lib\vc6\.vc\Include\IAMOVIE.IDL"
    var axMovie = com.CreateObject("AMOVIE.ActiveMovieControl") 
    axMovie.FileName = path; 
}

winform.btnMessageBeep.oncommand = function(id,event){

    //播放系统警报声
    //声音排队后,MessageBeep 函数将控制权返回给调用函数,并异步播放声音。
    //Win7 以及之后系统使用默认声音设备(通常是声卡)
    ::User32.MessageBeep(0x10/*_MB_ICONHAND*/);

    //峰鸣器奏乐: https://www.aardio.com/zh-cn/doc/example/Media/Audio/Beep.html
    //峰鸣声,Win7 以及之后系统使用默认声音设备(通常是声卡),早期系统使用主板峰鸣器。
    ::Kernel32.Beep(550,500);
}

winform.show() 
win.loopMessage();
Markdown 格式