C#winform如何判断Media Player是否播放完毕?

 我来答
小羊说编程
2012-04-14 · 专注编程模式教学,提升大家实战经验
小羊说编程
采纳数:406 获赞数:1394

向TA提问 私信TA
展开全部
window media player 控件里有一个属性,可以判断是否在 播放 是否停止 是否暂停,通过这三种状态可以判断是否播放完毕,具体说明如下:
属性/方法名: 说明:
[基本属性]  
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; 上一曲
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lasic
2012-04-09 · TA获得超过374个赞
知道小有建树答主
回答量:460
采纳率:100%
帮助的人:402万
展开全部
关键看你的Media Player是用什么来实现的。

如果是使用Microsoft.DirectX中的Video类来实现,该类有一个事件Ending,订阅该事件即可。

Video MyVideo;
// 打开一个新的Video文件
MyVideo = new Video(path);
MyVideo.Ending += new EventHandler(MyVideo_Ending);
追问
我是通过工具箱新建控件项拖拽进窗体的
追答
你看看设计代码中,该播放器的具体类型。应该是Video
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
G0398
2012-04-09 · TA获得超过764个赞
知道小有建树答主
回答量:1335
采纳率:0%
帮助的人:870万
展开全部
mediaplayer控件有个播放状态属性
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
星际足联
2024-08-29 · TA获得超过313个赞
知道答主
回答量:94
采纳率:33%
帮助的人:8.2万
展开全部
用PlayStateChange事件,EndOfStream事件在新的MediaPlayer版本上已经被废弃了。
但是扯蛋的PlayStateChange会触发一堆的事件,所以需要过滤,凡是_WMPOCXEvents_PlayStateChangeEvent.newState不等于8和10的事件,都过滤掉。
这样遇到8的事件后,表示播放结束了,然后代码处理要播放的下一首歌的URL,然后调用Ctlcontrols.play()方法,然后media play会重新连接和缓冲媒体,但它不会自动播放,需要等媒体连接并完成缓冲,然后再次触发PlayStateChange事件,这时候newState会变成10,这个状态值意思是“媒体准备就绪”,这时候再调用一次play()方法就ok了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式