[CF.Skills]在.NET CF中嵌入Media Player(C#)

一直寻找在WM5上面如何使用MediaPlayer播放音乐。


终于在微软找到一个多媒体案例中提到,详见:


http://www.microsoft.com/china/MSDN/library/Mobility/pocketpc/WorkingwithMultimedia.mspx

 


  只不过方法有些复杂,不过还好你可以下载它的Sample,然后在你的托管项目中引用该项目。
不管怎么说,毕竟.NET Compact Framework中没有可以直接操作wmp的方法。但是,即便如此我们仍然可以使用托管代码对windows media player进行控制。其基本思路是先为media player创建一条单独的进程,再通过忘Media player的窗体发送消息来控制Media Player。下面来看看这是如何通过托管代码做到的,
首先,创建进程并传入相应参数:

            wmpProcess = new Process();
            wmpProcess.StartInfo.FileName = "wmplayer.exe";
            wmpProcess.StartInfo.Arguments = wmpArgs;
  这里要注意一下Arguments的格式,应该像这样:"""/My Documents/TestVideo.wmv"" /fullscreen";文件路径必须和后面的参数区分开,这里C#和VB中,这样的加双引号的方式是合法的。
  然后,启动进程,音乐开始播放了(此时也许你希望用户的焦点仍然你的FORM,那么你应将你的form放置在顶层),在WM5.0以上的系统中,提供了更多对WMP的支持,你可以通过某些属性访问到当前播放的曲目名,艺术家的名字,专辑名,比特率,已经播放的时间(精确到毫秒)甚至是音乐风格。下面列举了一些:
            artist = SystemState.MediaPlayerTrackArtist;
            playingTrack = SystemState.MediaPlayerTrackTitle;
            album = SystemState.MediaPlayerAlbumTitle;
            bitRate = SystemState.MediaPlayerTrackBitrate;
            style = SystemState.MediaPlayerTrackGenre;
还有一个问题是如何停止MediaPlayer呢?我们还是可以通过给窗体发送消息来间接的控制,不过这里要用到一个本地的函数SendMessage,代码如下:
    //引用SendMessage并命名为CloseWMP
        private const UInt32 WM_CLOSE = 16;
        [DllImport("Coredll.dll", EntryPoint = "SendMessage")]
        public static extern Int32 CloseWMP(IntPtr hWnd, UInt32 Msg, Int32 wParam, Int32 lParam);
//用的时候这样
          public void StopWMP()
        {
            MyRef.CloseWMP(wmpProcess.MainWindowHandle, WM_CLOSE, 0, 0);
        }
  程序运行效果如下:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值