zoukankan      html  css  js  c++  java
  • msciSendCommand播放器到此结束了。

    功能:
    实现播放、暂停、停止、上一曲、下一曲、删除、删除所有、单曲循环、全部循环、
    (文件)文件路径显示、自定义音乐文件、播放进度、播放时间、音量设置(参考了网上的资料);
    利用文件读写:保存音乐文件、保存上次未播放完的音乐信息
    未完成的功能:歌词、进度条控制播放,没对界面进行处理
    播放器到此结束了有时间我会把未完成的功能也写上的
    大家可以下载下来参考参考,或者在此之上加一些功能

    头次连着几天写一个软件。如果稍加修改下界面和一些功能。。。还不错的。。

    呵呵。。

    遇到的问题

    1、CListCtrl问题刚开始我把它的属性设置成了排序的。。。如果显示出来的话只能显示出最后一个路径

    2、CFileDialog问题读取多个文件后不能直接利用API来获得文件名

    自己封装了一个函数来获得

    //得到某个字字符最后出现的位置
    int FindLast(CString cstr,char tChar)
    {
     int tRet;
     char *pChar;
     //库函数strchr。返回该字符在串中最后位置的指针
     pChar=strrchr(cstr,tChar);
     if(pChar)
      tRet=int(pChar-cstr); //计算下标
     else
      tRet=-1;
     return tRet;
    }

    3、播放模式问题

    没想到什么好的办法。。。只好利用定时器来解决此问题了

    if (nIDEvent == LOOP)
     {
      
      if (GetPlayMode(MCI_STATUS_MODE)==MCI_MODE_STOP)
      {
       OnStop();
       OnPlay();
      }
     }
     else if (nIDEvent == ALLLOOP)
     {
      
      if (GetPlayMode(MCI_STATUS_MODE)==MCI_MODE_STOP)
      {
       OnStop();
       m_PlayPos++;
       if (m_PlayPos == m_SaveArray.GetSize())
       {
        m_PlayPos = 0;
       }
       OnPlay();
      }
     }

    4、播放时间的显示

    int Minute = 0;
     int Second = 0;
     unsigned long tTime;
     CString tTemp;
     tTime = GetPlayMode(MCI_STATUS_POSITION);

     tTime = tTime/1000;
     Minute = tTime/60;
     Second=tTime%60+1;
     if(Second==60)
     {
      Second=0;
     }
     tTemp.Format("%d:%d/%d:%d",Minute,Second,m_Minute,m_Second);
     this->SetDlgItemText(IDC_TIME,tTemp);

    5、最后是音量的设置了

    参考了网上的代码

    主要利用了以下的消息函数来完成此功能
     afx_msg void OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);
     afx_msg LONG OnMixerCtrlChange(UINT wParam, LONG lParam);

    封装的函数

     //音量控制
     BOOL amdUninitialize();
     BOOL amdInitialize();
     BOOL amdGetMasterVolumeControl();
     BOOL amdGetMasterVolumeValue(DWORD &dwVal) const;
     BOOL amdSetMasterVolumeValue(DWORD dwVal) const;

  • 相关阅读:
    第十二章学习笔记
    UVa OJ 107 The Cat in the Hat (戴帽子的猫)
    UVa OJ 123 Searching Quickly (快速查找)
    UVa OJ 119 Greedy Gift Givers (贪婪的送礼者)
    UVa OJ 113 Power of Cryptography (密文的乘方)
    UVa OJ 112 Tree Summing (树的求和)
    UVa OJ 641 Do the Untwist (解密工作)
    UVa OJ 105 The Skyline Problem (地平线问题)
    UVa OJ 100 The 3n + 1 problem (3n + 1问题)
    UVa OJ 121 Pipe Fitters (装管子)
  • 原文地址:https://www.cnblogs.com/ccmfc/p/1720789.html
Copyright © 2011-2022 走看看