本来想做个播放Mp3软件玩玩,主要是酷狗那些软件太大,而且发现有时候会把我下载的歌曲自动删了。为了简单,不带第三方库我用了Windows Media Player这个控件,写代码时候发现这个并不简单,axWindowsMediaPlayer1_PlayStateChange可以是自动播放下一首的关键触发事件,但是e.NewSate并不是我想要的网上说.NewSate=8,实际操作起来有的居然不播放,为了搞清楚状态切换,于是做了一个简单,研究,先说说Windows Media Player状态码
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; //上一次状态,状态没有改变
以下是研究结果:
indows Media Player状态改变:
URL赋值时候,会自动播放,状态为9=>9=>3 ,调用代码axWindowsMediaPlayer1.URL = @"test.mp3";
暂停时候,状态为2,调用代码axWindowsMediaPlayer1.Ctlcontrols.pause();
播放时候,状态为3,调用代码axWindowsMediaPlayer1.Ctlcontrols.play();
停止时候,状态为1,调用代码axWindowsMediaPlayer1.Ctlcontrols.stop();
拖动进度条时候,无状态
自动播放完毕时候,状态为8=>9=>1