C#中添加AxWindowsMediaPlayer控件后如何使用 谢谢好心人帮帮忙

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#中添加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 String
With Me.OpenFileDialog1
.Title = "打开语音文件"
.CheckPathExists = True
.CheckFileExists = True
.Multiselect = False
.Filter = "mp3文件(*.mp3)|*.mp3|所有文件(*.*)|*.*"
If .ShowDialog = DialogResult.Cancel Then
Exit Sub
End If
filePath = .FileName
End With
Me.Text = "PC复读机-文件 " & filePath
AxWindowsMediaPlayer1.URL = filePath
Try
Me.AxWindowsMediaPlayer1.Ctlcontrols.play()
Catch ex As Exception
MsgBox("对不起,不能播放此格式语音文件", MsgBoxStyle.OKOnly, "PC复读机")
Exit Sub
End 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.Tick
EndPoint = AxWindowsMediaPlayer1.currentMedia.duration
If 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是一个整型变量。追问

就是运行这个程序号能执行简单的音乐播放,最好能有代码

追答

你想怎样使它播放音乐?你想播放文件夹里面的歌吗?我做过一个是播放文件夹里的歌的音乐器,但是我只做到播放之后就没做了!要是你需要,我可以发给你看看!

参考技术A 右键点击,属性,有功能菜单,如要播放的音频文件等等。 参考技术B using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace vrrun

class Player

private AxWMPLib.AxWindowsMediaPlayer myPlayer;
private string[] playList;
private int numOfMusic;
private int currentPlay;

public int NumOfMusic

get

return numOfMusic;


public void Pause()

myPlayer.Ctlcontrols.pause();

public WMPLib.WMPPlayState playstate

get

return myPlayer.playState;



public string PlayList(int num)

return playList[num];


public Player(AxWMPLib.AxWindowsMediaPlayer mediaPlayer)

myPlayer = mediaPlayer;
playList = new string[1000];
numOfMusic = 0;


public void AddFile(string path)

if (numOfMusic < 1000)

playList[numOfMusic] = path;
numOfMusic++;



public void DelFile(int selectNum)

for (int i = selectNum; i <= numOfMusic - 1; i++)

playList[i] = playList[i + 1];

numOfMusic--;


public void play(int selectNum)

myPlayer.URL = playList[selectNum];
currentPlay = selectNum;


public int NextPlay(int type)

/* type = 0 顺序

type = 1 重复播放全部
type = 2 重复播放一首
type = 3 随机播放

*/

switch (type)

case 0:
currentPlay++;
if (currentPlay > numOfMusic) return 0;
else return currentPlay;
case 1:
currentPlay++;
if (currentPlay > numOfMusic) return 1;
else return currentPlay;
case 2:
return currentPlay;
case 3:
Random rdm = new Random(unchecked((int)DateTime.Now.Ticks));
currentPlay = rdm.Next() % numOfMusic;
if (currentPlay == 0) return numOfMusic;
else return currentPlay;
default:
return 0;



以上是关于C#中添加AxWindowsMediaPlayer控件后如何使用 谢谢好心人帮帮忙的主要内容,如果未能解决你的问题,请参考以下文章

C#中axWindowsMediaPlayer1怎么播放mp3文件,能不能给个代码啊

求助:关于C#中使用axwindowsmediaplayer 播放wav文件的问题

求助:C#中使用axwindowsmediaplayer 播放wav文件的问题

C# axWindowsMediaPlayer怎么播放视频

c#怎样把axWindowsMediaPlayer控件播放的音乐歌词显示在某个控件上

C# axWindowsMediaPlayer播放MP3有时会卡,怎么办?