WMplayer.ocx的一些使用
By
admin
at 2017-11-25 • 0人收藏 • 1854人看过
属性/方法名: 说明: [基本属性] URL:String; 指定媒体位置,本机或网络地址 uiMode:String; 播放器界面模式,可为Full, Mini, None, Invisible playState:integer; 播放状态,1=停止,2=暂停,3=播放,6=正在缓冲,9=正在连接,10=准备就绪 enableContextMenu:Boolean; 启用/禁用右键菜单 fullScreen:boolean; 是否全屏显示 [controls] wmp.controls //播放器基本控制 controls.play; 播放 controls.pause; 暂停 controls.stop; 停止 controls.currentPosition:double; 当前进度 controls.currentPositionString:string; 当前进度,字符串格式。如“00:23” controls.fastForward; 快进 controls.fastReverse; 快退 controls.next; 下一曲 controls.previous; 上一曲 [settings] wmp.settings //播放器基本设置 settings.volume:integer; 音量,0-100 settings.autoStart:Boolean; 是否自动播放 settings.mute:Boolean; 是否静音 settings.playCount:integer; 播放次数 [currentMedia] wmp.currentMedia //当前媒体属性 currentMedia.duration:double; 媒体总长度 currentMedia.durationString:string; 媒体总长度,字符串格式。如“03:24” currentMedia.getItemInfo(const string); 获取当前媒体信息"Title"=媒体标题,"Author"=艺术家,"Copyright"=版权信息,"Description"=媒体内容描述, "Duration"=持续时间(秒),"FileSize"=文件大小,"FileType"=文件类型,"sourceURL"=原始地址 currentMedia.setItemInfo(const string); 通过属性名设置媒体信息 currentMedia.name:string; 同 currentMedia.getItemInfo("Title") [currentPlaylist] wmp.currentPlaylist //当前播放列表属性 currentPlaylist.count:integer; 当前播放列表所包含媒体数 currentPlaylist.Item[integer]; 获取或设置指定项目媒体信息,其子属性同wmp.currentMedia playState:integer; 播放状态。这个属性改变时同时引发PlayStateChange事件与StateChange事件。取值范围为枚举型:WMPLib.WMPPlayState,它的成员如下: wmppsUndefined = 0; //未知状态 wmppsStopped = 1; //播放停止 wmppsPaused = 2; //播放暂停 wmppsPlaying = 3; //正在播放 wmppsScanForward = 4; //向前搜索 wmppsScanReverse = 5; //向后搜索 wmppsBuffering = 6; //正在缓冲 wmppsWaiting = 7; //正在等待流开始 wmppsMediaEnded = 8; //播放流已结束 wmppsTransitioning = 9; //准备新的媒体文件 wmppsReady = 10; //播放准备就绪 wmppsReconnecting = 11; //尝试重新连接流媒体数据 wmppsLast = 12; //上一次状态,状态没有改变
利用aar播放示例:
import win.ui; import com; import fsys; import table; import string; import console; /*DSG{{*/ var winform = win.form(text="aardio Form";right=368;bottom=450;exmode="toolwindow";max=false;min=false;parent=...) winform.add( button={cls="button";text="获取播放状态";left=12;top=387;right=82;bottom=431;z=7}; button2={cls="button";text="获取播放进度";left=91;top=389;right=165;bottom=433;z=8}; button3={cls="button";text="button3";left=177;top=391;right=231;bottom=433;z=9}; button4={cls="button";text="button4";left=244;top=396;right=313;bottom=436;z=10}; listbox={cls="listbox";left=33;top=54;right=336;bottom=366;ah=1;aw=1;bgcolor=16777215;edge=1;hscroll=1;items={};vscroll=1;z=4}; next={cls="button";text="下一曲";left=276;top=7;right=320;bottom=42;ah=1;aw=1;z=6}; pause={cls="button";text="暂停";left=109;top=7;right=153;bottom=42;ah=1;aw=1;z=2}; play={cls="button";text="播放";left=47;top=7;right=97;bottom=42;ah=1;aw=1;z=1}; previous={cls="button";text="上一曲";left=221;top=7;right=265;bottom=42;ah=1;aw=1;z=5}; stop={cls="button";text="停止";left=165;top=7;right=208;bottom=42;ah=1;aw=1;z=3} ) /*}}*/ console.open(); var wmp = com.CreateObject("WMPlayer.OCX"); //io.open(); list = {}; musiclist = {}; path = "D:\KuGou"; fsys.enum( path, "*.*", function(dir,filename,fullpath,findData){ if(filename){ //io.print("发现文件:"+filename,"完整路径:"+fullpath) if string.find(filename,".mp3")!=null or string.find(filename,".wav")!=null or string.find(filename,".MP3")!=null or string.find(filename,".WAV")!=null { //io.print(filename); table.push(list,filename+" "+fullpath); table.push(musiclist,fullpath); } } /* else{ io.print( "发现目录:" + dir ) }*/ } , function(dir){ return true; } /*如果此参数为false则忽略子目录*/ ); for i in list { winform.listbox.add(list[i]); } for j in musiclist { media = wmp.newMedia(musiclist[j]); wmp.currentPlaylist.appendItem(media); } //查看当前进度 winform.button2.oncommand = function(id,event){ //winform.msgbox( winform.button2.text ); console.log(wmp.controls.currentPositionString()); } //查看媒体总长度 winform.button3.oncommand = function(id,event){ console.dump(wmp.currentMedia.durationString()); } //获取播放文件信息 winform.button4.oncommand = function(id,event){ console.dump("名字:",wmp.currentMedia.getItemInfo("title")); console.dump("名字:",wmp.currentMedia.getItemInfo("FileSize")); } winform.next.oncommand = function(id,event){ wmp.controls.next(); } winform.previous.oncommand = function(id,event){ wmp.controls.previous(); } winform.stop.oncommand = function(id,event){ wmp.controls.stop(); } winform.pause.oncommand = function(id,event){ wmp.controls.pause(); } winform.play.oncommand = function(id,event){ wmp.controls.play(); } winform.listbox.oncommand = function(id,event){ if( event == 0x2/*_LBN_SELCHANGE*/ ){ winform.msgbox(musiclist[winform.listbox.selIndex]); } } //查看播放状态 winform.button.oncommand = function(id,event){ //winform.msgbox( winform.button.text ); console.log("播放状态:"); select(wmp.playState()) { case 1 { console.log("停止!") } case 2 { console.log("暂停中!") } case 3 { console.log("播放中!") } else { console.log("....!") } } } winform.show() win.loopMessage();
以上代码基于原帖:http://bbs.aardio.com/forum.php?mod=viewthread&tid=9629&extra=page%3D1
登录后方可回帖