vb.net axWindowsMediaPlayer 控件使用

利用axWindowsMediaPlayer(Windows Media Player)制作MP3播放器 2 
在制作mp3播放器之前,我们需要了解axWindowsMediaPlayer 媒体主要方法属性:
属性/方法名: 说明: 
[基本属性]   
URL:String; 指定媒体位置,本机或网络地址 
uiMode:String; 播放器界面模式,可为Full, Mini, None, Invisible 
playState:integer; 播放状态,1=停止,2=暂停,3=播放,6=正在缓冲,9=正在连接,10=准备就绪 
enableContextMenu:Boolean; 启用/禁用右键菜单 
fullScreen:boolean; 是否全屏显示 
//播放器基本控制 
Ctlcontrols.play; 播放 
Ctlcontrols.pause; 暂停 
Ctlcontrols.stop; 停止 
Ctlcontrols.currentPosition:double; 当前进度 
Ctlcontrols.currentPositionString:string; 当前进度,字符串格式。如“00:23” 
Ctlcontrols.fastForward; 快进 
Ctlcontrols.fastReverse; 快退 
Ctlcontrols.next; 下一曲 
Ctlcontrols.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 
axWindowsMediaPlayer1.currentMedia.sourceURL; //获取正在播放的媒体文件的路径
axWindowsMediaPlayer1.currentMedia.name;          //获取正在播放的媒体文件的名称
axWindowsMediaPlayer1.Ctlcontrols.Play          播放 
axWindowsMediaPlayer1.Ctlcontrols.Stop          停止 
axWindowsMediaPlayer1.Ctlcontrols.Pause          暂停 
axWindowsMediaPlayer1.Ctlcontrols.PlayCount        文件播放次数 
axWindowsMediaPlayer1.Ctlcontrols.AutoRewind       是否循环播放 
axWindowsMediaPlayer1.Ctlcontrols.Balance         声道 
axWindowsMediaPlayer1.Ctlcontrols.Volume         音量 
axWindowsMediaPlayer1.Ctlcontrols.Mute          静音 
axWindowsMediaPlayer1.Ctlcontrols.EnableContextMenu    是否允许在控件上点击鼠标右键时弹出快捷菜单 
axWindowsMediaPlayer1.Ctlcontrols.AnimationAtStart    是否在播放前先播放动画 
axWindowsMediaPlayer1.Ctlcontrols.ShowControls      是否显示控件工具栏 
axWindowsMediaPlayer1.Ctlcontrols.ShowAudioControls    是否显示声音控制按钮 
axWindowsMediaPlayer1.Ctlcontrols.ShowDisplay       是否显示数据文件的相关信息 
axWindowsMediaPlayer1.Ctlcontrols.ShowGotoBar       是否显示Goto栏 
axWindowsMediaPlayer1.Ctlcontrols.ShowPositionControls  是否显示位置调节按钮 
axWindowsMediaPlayer1.Ctlcontrols.ShowStatusBar      是否显示状态栏 
axWindowsMediaPlayer1.Ctlcontrols.ShowTracker       是否显示进度条 
axWindowsMediaPlayer1.Ctlcontrols.FastForward       快进 
axWindowsMediaPlayer1.Ctlcontrols.FastReverse       快退 
axWindowsMediaPlayer1.Ctlcontrols.Rate          快进/快退速率 
axWindowsMediaPlayer1.AllowChangeDisplaySize 是否允许自由设置播放图象大小 
axWindowsMediaPlayer1.DisplaySize       设置播放图象大小 1-MpDefaultSize         原始大小 2-MpHalfSize           原始大小的一半 3-MpDoubleSize          原始大小的两倍 4-MpFullScreen          全屏 5-MpOneSixteenthScreen      屏幕大小的1/16 6-MpOneFourthScreen       屏幕大小的1/4 7-MpOneHalfScreen        屏幕大小的1/2 
axWindowsMediaPlayer1.ClickToPlay       是否允许单击播放窗口启动Media Player
在视频播放之后,可以通过如下方式读取源视频的宽度和高度,然后设置其还原为原始的大小.private void ResizeOriginal(){int intWidth = axWindowsMediaPlayer1.currentMedia.imageSourceWidth;int intHeight = axWindowsMediaPlayer1.currentMedia.imageSourceHeight;axWindowsMediaPlayer1.Width = intWidth + 2;axWindowsMediaPlayer1.Height = intHeight + 2;}
打开媒体文件并播放:Dim filePath As StringWith Me.OpenFileDialog1.Title = "打开语音文件".CheckPathExists = True.CheckFileExists = True.Multiselect = False.Filter = "mp3文件(*.mp3)|*.mp3|所有文件(*.*)|*.*"If .ShowDialog = DialogResult.Cancel ThenExit SubEnd IffilePath = .FileNameEnd WithMe.Text = "PC复读机-文件 " & filePathAxWindowsMediaPlayer1.URL = filePathTryMe.AxWindowsMediaPlayer1.Ctlcontrols.play()Catch ex As ExceptionMsgBox("对不起,不能播放此格式语音文件", MsgBoxStyle.OKOnly, "PC复读机")Exit SubEnd Try
注意:
AxWindowsMediaPlayer1.URL 中URL是表示要播放的文件名,取消了原来的Name属性.
AxWindowsMediaPlayer1.Ctlcontrols.play()播放,同样还有Pause,Stop等其他属性.
AxWindowsMediaPlayer1.settings.balance表示媒体播放的声道设置,0表示均衡,-1和1表示左右声道.
AxWindowsMediaPlayer1.currentMedia.duration 表示要播放的文件的时间长度.可用它获取文件长度.
AxWindowsMediaPlayer1.Ctlcontrols.currentPosition表示正在播放的文件的当前播放位置,可用这个属性来对媒体文件进行前进后退等设置.如
AxWindowsMediaPlayer1.Ctlcontrols.currentPosition+1 表示前进1个时间单位.
AxWindowsMediaPlayer1.settings.rate播放速率,一般乘以16后再显示kbps单位.
注意:在上面程序中,如果在后面加上一个:
msgbox(AxWindowsMediaPlayer1.currentMedia.duration.ToString )
则显示结果很可能为0,因此,这时候很可能获取不到文件的播放时间长度,容易出错。所以在利用的时候可以加一个timer控件:
Private Sub Timer1_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles Timer1.TickEndPoint = AxWindowsMediaPlayer1.currentMedia.durationIf EndPoint = 0 Then Exit Sub '可能因为媒体文件的打开需要一定时间,这里等待媒体文件的打开msgbox(AxWindowsMediaPlayer1.currentMedia.duration.ToString )
End Sub
此时msgbox便会显示文件播放长度。
2. Ctlcontrols属性
Ctlcontrols属性是AxWindowsMediaPlayer的一个重要属性, 此控件中有许多常用成员。
(1) 方法play
用于播放多媒体文件,其格式为:
窗体名.控件名.Ctlcontrols.play()
如: AxWindowsMediaPlayer1.Ctlcontrols.play() ‘此处缺省窗体名是Me
(2) 方法pause
用于暂停正在播放的多媒体文件,其格式为:
窗体名.控件名.Ctlcontrols.pause()
如: AxWindowsMediaPlayer1.Ctlcontrols.pause()
(3) 方法stop
用于停止正在播放的多媒体文件,其格式为:
窗体名.控件名.Ctlcontrols.stop()
如: AxWindowsMediaPlayer1.Ctlcontrols.stop()
(4) 方法fastforward
用于将正在播放的多媒体文件快进,其格式为:
窗体名.控件名.Ctlcontrols.fastforward()
如: AxWindowsMediaPlayer1.Ctlcontrols.forward()
(5) 方法fastreverse
窗体名.控件名.Ctlcontrols.fastreverse()
如: AxWindowsMediaPlayer1.Ctlcontrols.fastreverse()
6. 属性CurrentPosition
用于获取多媒体文件当前的播放进度,其值是数值类型,使用格式为:
窗体名.控件名.Ctlcontrols.currentPosition
d1 =AxWindowsMediaPlayer1.Ctlcontrols.currentPosition
其中d1 是一个整型变量。
7. 属性Duration
用于获取当前多媒体文件的播放的总时间,其值为数值类型,其使用格式为:
窗体名.控件名.currentMedia.duration
如:d2 =AxWindowsMediaPlayer1.currentMedia.duration
其中d2是一个整型变量。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/545215.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

坑爹的 Lombok,把我害惨了!

来源:juejin.im/post/6881432532332576781序言去年在项目当中引入了Lombok插件,着实解放了双手,代替了一些重复的简单工作(Getter,Setter,toString等方法的编写),但是,在使用的过程当中,也发现了一些坑&…

数据结构学习笔记(六)链表算法题

假期结束,看点题目。 第一题 问题 设顺序表用数组A[]表示,表中元素存储在数组下标1~mn的范围内,前m个元素递增有序,后n个元素递增有序,设计一个算法,使得整个顺序表有序。 (1)给出算…

安卓第一次搭建C/S架构

1_数据库 2_服务端 服务端简单搭建准入门 使用json,导入jar包复制这段内容后打开百度网盘手机App,操作更方便哦 提取码: 3afj 在项目中建一个文件夹并粘贴进去 json与list的互转: import com.alibaba.fastjson.JSON;import j…

vb.net 中最小化到托盘和锁定窗体大小的问题(notifyIcon的两个重要属性)

最小化到托盘需要用到 NotifyIcon 控件,从工具箱中找到并添加,其余代码如下: 最小化到右下角 & 锁定窗口大小Private Sub Form1_Resize(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.ResizeIf Me.WindowState …

面试官不讲武德,竟然问了我18个JVM问题!

前言GC 对于Java 来说重要性不言而喻,不论是平日里对 JVM 的调优还是面试中的无情轰炸。这篇文章我会以一问一答的方式来展开有关 GC 的内容。本文章所说的 GC 实现没有特殊说明的话,默认指的是 HotSpot 的。我先将十八个问题都列出来,大家可…

2月第3周国内域名商TOP10:爱名网排名升至第八

IDC评述网(idcps.com)02月26日报道:根据WebHosting.info公布的最新数据显示,在2月第3周,国内域名商域名总量十强总体呈下降趋势。其中,降幅最大的是DNSPod,净减16,762个。另外,中国数…

Android JSON数据与实体类之间的相互转化-------GSON的简单用法

Android JSON数据与实体类之间的相互转化-------GSON的用法1_Gson的导入1.1_方法一:直接导入jar包1.2_方法二:引入依赖2_json形式的字符串互转实体对象2.1_json字符串与单个实体对象互转2.2_json与list互转3_遇到的问题3.1_前后端对象成员变量类型不一致…

Java StreamTokenizer quoteChar()方法与示例

StreamTokenizer类quoteChar()方法 (StreamTokenizer Class quoteChar() method) quoteChar() method is available in java.io package. quoteChar()方法在java.io包中可用。 quoteChar() method denotes that matching pairs of this character delimiter, string constants …

decode 实例

以往相关材料: http://blog.csdn.net/arrowzz/article/details/17144651 http://blog.csdn.net/arrowzz/article/details/17144669表id,name,score1,小明,胜2,小明,胜3,小李,负4,小李,负5,小明,负6,小李,胜7,小李,胜效果name,胜,负小明,2,1小李,2,2创建表&#xf…

5种SpringBoot热部署方式,你用哪种?

来源 | my.oschina.net/ruoli/blog/1590148Spring Boot 中 5 种热部署方式如下:1、模板热部署2、使用调试模式Debug实现热部署3、spring-boot-devtools4、Spring Loaded5、JRebel接下来我们分别来看。1、模板热部署在 Spring Boot 中,模板引擎的页面默认…

IBM 前面板显示信息提示

ps1 指示灯:当此指示灯发亮时,表明电源1 出现故障。 ps2 指示灯:当此指示灯发亮时,表明电源2 出现故障。 temp 指示灯:当此指示灯发亮时,表明系统温度超出阈值级别。 风扇指示灯:当此指…

ContextMenu长按事件

/* ContextMenu菜单就是长按某一个组件,就会在屏幕的中间弹出ContextMenu,这里设置为长按文本框弹出ContextMenu菜单*/public class MyContextMenu extends AppCompatActivity {/** Called when the activity is first created. */final static int CONT…

observable_Java Observable deleteObserver()方法与示例

observable可观察的类deleteObserver()方法 (Observable Class deleteObserver() method) deleteObserver() method is available in java.util package. deleteObserver()方法在java.util包中可用。 deleteObserver() method is used to remove the given observer (obs) from…

偶尔所得代码片(进程和锁相关)

--杀死相关进程&#xff08;必须要用dba账号sys&#xff09; --alter system kill session session_id, serial#;alter system kill session 500,2568;--select lower(CHR(64ROWNUM)) from dual connect by ROWNUM <126--查进程 select * from v$process; --查锁 select * f…

熬夜都要看完的 Spring 干货!

在 Java 后端框架繁荣的今天&#xff0c;Spring 无疑是最最最火热&#xff0c;也是必不可少的开源框架&#xff0c;像腾讯、阿里、字节跳动等一线互联网公司都选择 Spring 作为基础的开发框架。而 Spring 生态圈里最让人兴奋的莫过于 Spring Boot 框架。他简化了使用 Spring 的…

2014值得期待的Erlang两本新书

在2014年的开头就有这样一个令人振奋的好消息,Erlang有一本新书即将出版 《The Erlang Runtime System》,其作者happi在2013年3月份发布了这本书的写作计划:"The plan is to have the book done by the end of 2013 and published early 2014. ",出版方是O’Reilly,依…

页面分栏LayoutInflater

/* 页面分栏*/ public class TabDemo extends TabActivity {/** Called when the activity is first created. */Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);TabHost tabHost getTabHost();LayoutInflater.from(this).inf…

这么简单的三目运算符,竟然这么多坑?

最近在一个业务改造中&#xff0c;使用三目运算符重构了业务代码&#xff0c;没想到测试的时候竟然发生 NPE 的问题。重构代码非常简单&#xff0c;代码如下&#xff1a;// 方法返回参数类型为 Integer // private Integer code; SimpleObj simpleObj new SimpleObj(); // 其…

Java 邮箱判断 正则表达式

import java.util.Scanner;public final class EmailCheck {public static boolean checkEmail(String email){String regex1 "[a-zA-Z][a-zA-Z0-9_]*[a-zA-Z0-9][.][a-zA-Z0-9]";//字母开头&#xff0c;后加字母或数字&#xff0c;后面加点&#xff0c;后面字母或数…

Java DataInputStream skipBytes()方法与示例

DataInputStream类skipBytes()方法 (DataInputStream Class skipBytes() method) skipBytes() method is available in java.io package. skipBytes()方法在java.io包中可用。 skipBytes() method is used to skip the given number of bytes of data from this DataInputStrea…