⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lrcopy1.txt

📁 在DELPHI中实现左右声道转换的源码,调用MCI避免了某一声道不出声的尴尬
💻 TXT
字号:

    
  首先   User   mmSystem   单元   
    
  定义:   
  const   
      //声道控制部分   
      MCI_SETAUDIO=   $873;   
      MCI_SETVIDEO=$0876;   
      MCI_DGV_SETAUDIO_SOURCE_LEFT=1;   
      MCI_DGV_SETAUDIO_SOURCE_STEREO=0;   
      MCI_DGV_SETAUDIO_SOURCE_RIGHT=2;   
      MCI_DGV_SETAUDIO_SOURCE=$4004;   
      MCI_DGV_SETAUDIO_VALUE=$01000000;   
      MCI_DGV_SETAUDIO_ITEM=$00800000;   
    
      MCI_DGV_SETAUDIO_VOLUME=$4002;     //++音量大小控制   
      MAX_VOLUME=65535;                               //++   
      MIN_VOLUME=0;                                       //++   
    
  type   //音量控制   
      MCI_DGV_SETAUDIO_PARMS=record   
          dwCallback:DWORD;   
          dwItem:DWORD;   
          dwValue:DWORD;   
          dwOver:DWORD;   
          lpstrAlgorithm:PChar;   
          lpstrQuality:PChar;   
  end;   
    
  //*************************************左右声道控制*****************************************//   
  //     L   --   左声道 R   --   右声道 C   --   立体声   
  //*****************************************************************************************//   
  procedure   LRC(Str:   String);   
  var   
      s:   MCI_DGV_SETAUDIO_PARMS   ;   
      err:integer;   
      buf:array[0..1000]   of   char;   
  begin   
    
      if   MediaPlayer11.DeviceID>0   then   
      begin   
          //播放中一定要先关闭声音,否则没效果   
          err:=mciSendCommand(MediaPlayer11.DeviceID,MCI_SETAUDIO,   MCI_SET_OFF   ,integer(@s));   
          if(err<>0)then   
          begin   
              mciGetErrorString(err,buf,sizeof(buf)   );   
              FormMain.MessageBoxShow('1',buf,2,True,10000);   
              //ShowMessage(buf);   
          end;   
          if   Str='C'   then   
              s.dwValue:=MCI_DGV_SETAUDIO_SOURCE_STEREO;   //右声道源   
          if   Str='L'   then   
              s.dwValue:=MCI_DGV_SETAUDIO_SOURCE_Left;   //右声道源   
          if   Str='R'   then   
              s.dwValue:=MCI_DGV_SETAUDIO_SOURCE_Right;   //右声道源   
          s.dwItem:=MCI_DGV_SETAUDIO_SOURCE;   
          //下面的MCI_DGV_SETAUDIO_VALUE   一定不能少   
          err:=mciSendCommand(MediaPlayer11.DeviceID,MCI_SETAUDIO,MCI_DGV_SETAUDIO_VALUE   or   MCI_DGV_SETAUDIO_ITEM   ,integer(@s));   
          if   (err<>0)   then   
          begin   
              mciGetErrorString(err,buf,sizeof(buf)   );   
              FormMain.MessageBoxShow('1',buf,2,True,10000);   
              //ShowMessage(buf);   
          end;   
          //再打开声音,就是你所要的   
          err:=mciSendCommand(MediaPlayer11.DeviceID,MCI_SETAUDIO,   MCI_SET_ON   ,integer(@s));   
          if   (err<>0)   then   
          begin   
              mciGetErrorString(err,buf,sizeof(buf)   );   
              FormMain.MessageBoxShow('1',buf,2,True,10000);   
          end;   
      end;   
  end;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -