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();

blob.png


以上代码基于原帖:http://bbs.aardio.com/forum.php?mod=viewthread&tid=9629&extra=page%3D1

登录后方可回帖

登 录
信息栏
 私人小站

本站域名

ChengXu.XYZ

投诉联系:  popdes@126.com



快速上位机开发学习,本站主要记录了学习过程中遇到的问题和解决办法及上位机代码分享

这里主要专注于学习交流和经验分享.
纯私人站,当笔记本用的,学到哪写到哪.
如果侵权,联系 Popdes@126.com

友情链接
Aardio官方
Aardio资源网


才仁机械


网站地图SiteMap

Loading...