Chinaunix首页 | 论坛 | 博客
  • 博客访问: 457544
  • 博文数量: 42
  • 博客积分: 1325
  • 博客等级: 中尉
  • 技术积分: 1312
  • 用 户 组: 普通用户
  • 注册时间: 2009-01-13 18:00
个人简介

呵~~~呵~~~

文章分类

全部博文(42)

文章存档

2016年(3)

2015年(1)

2014年(2)

2013年(2)

2012年(7)

2011年(11)

2010年(3)

2009年(13)

我的朋友

分类: WINDOWS

2010-01-12 16:43:21

Media Player控件使用

1 新建Dialog应用程序
2 1)在Dialog上右击, 选择"Insert ActiveX Control"
  2)选择"Windows Media Player", ID为"IDC_OCX1"
3 1)在ClassWizard中为"IDC_OCX1"添加变量"m_player"
  2)Category:Control Variabletype:CWMPPlayer4

添加需要的".h文件",及控制代码 

#include "wmpplayer4.h"
#include "wmpcontrols.h"
#include "wmpsettings.h"

//wmpplayer4.h

m_wmp.openPlayer("F:\\a.avi")//去等外部播放器并播放的电影或音乐.但不能对其进行下面的控制.不建议.

m_player.SetUrl("F:\\a.avi"); //设置要播的电影或者音乐

//wmpcontrols.h
m_player.GetControls().play(); //开始播放
m_player.GetControls().pause(); //暂停播放
m_player.GetControls().pause(); //停止
funSetPosition(int posPerCent) //设置播放进度条, 60% posPerCent=60
{
    if ( posPerCent >= 0 && posPerCent <= 100)
    {
        double percent = m_player.GetCurrentMedia().GetDuration() * (posPerCent/100);
        m_player.GetControls().SetCurrentPosition(percent);

        return 0;
    }
    else
        return 1;
}

//wmpsettings.h
funVolumeADD(int step) //音量增加
{
    long cur_vol = m_player.GetSettings().GetVolume();

    if (cur_vol < 100 - step)
        m_player.GetSettings().SetVolume( cur_vol + step);
    else
        m_player.GetSettings().SetVolume( 100);

    return 0;
}

funVolumeSUB(int step) //音量减少
{
    long cur_vol = m_player.GetSettings().GetVolume();

    if (cur_vol > step)
        m_player.GetSettings().SetVolume( cur_vol - step);
    else
        m_player.GetSettings().SetVolume( 0);

    return 0;
}

int CVideoFrame::funMute() //静音
{
    if (m_player.GetSettings().GetMute())
        m_player.GetSettings().SetMute(FALSE);
    else
        m_player.GetSettings().SetMute(TRUE);

    return 0;
}


 
另外, 可以为控件添加消息响应.
例如: 需要播放时全屏,并且双击退出全屏并暂停节目.
1 ClassWizard->Message Maps
  Object IDs:"IDC_OCX1" add Messages:"PlayStateChange"
        生成函数"OnPlayStateChangeOcx1(long NewState)"            
  Object IDs:"IDC_OCX1" add Messages:"DoubleClick"
        生成函数"OnDoubleClickOcx1(short nButton, short nShiftState, long fX, long fY)"
 

//播放时全屏
void OnPlayStateChangeOcx1(long NewState)
{
    switch(NewState)
    {
        case 1:        //stopped 
            break; 
        case 2:     //Paused; 
            break; 
        case 3:        //playing 
            m_player.SetFullScreen(TRUE);             
            break;             
        default:;
    }
}

//双击退出全屏 && 暂停
void OnDoubleClickOcx1(short nButton, short nShiftState, long fX, long fY)
{
    m_player.SetFullScreen(FALSE);
    m_player.GetControls().pause();
}


阅读(7342) | 评论(2) | 转发(0) |
1

上一篇:base64编码解码

下一篇:GDB多线程调试

给主人留下些什么吧!~~

shiemio2013-08-16 15:03:56

真传半张纸,假传满部书——此言不假!

shiemio2013-08-16 14:59:44

找遍网络,关于这个知识点,用最少叙述最明确最靠普最快捷解决问题的,只有你这篇!!!