我正在使用 lame 库和 MCI 制作一个简单的音乐播放程序。将 MP3 文件解码成 wav 文件后,使用 MCIWndCreate 和 MCIWndPlay 播放音乐。所有功能都运行良好,但设置音量时出现问题。我找到并使用了一种名为 MCIWndSetVolume(hWnd, iVol) 的方法来设置音量。但我得到如下错误。如果你知道哪一部分是问题,请给我一点建议。非常感谢您阅读并回答我的问题。错误消息 -> 驱动程序无法识别指定的命令。
void CMP3PlayerDlg::Wav(CString strFileName)
{
m_hWav = NULL;
m_nowWav = strFileName;
CString strWav;
strWav.Format(WAV_FILE_PATH + strFileName);
if(m_hWav == NULL)
{
m_hWav = MCIWndCreate(this->GetSafeHwnd(), AfxGetInstanceHandle(), WS_CHILD | WS_VISIBLE | MCIWNDF_NOMENU , strWav);
}
else
{
MCIWndHome(m_hWav);
}
MCIWndPlay(m_hWav);
m_bPause = FALSE;
m_btnPlay.EnableWindow(FALSE);
}
void CMP3PlayerDlg::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{
// TODO: 여기에 메시지 처리기 코드를 추가 및/또는 기본값을 호출합니다.
if(IDC_SLIDER_VOLUM == pScrollBar->GetDlgCtrlID())
{
int nPos = m_SliderVol.GetPos();
CString strPos;
strPos.Format("%d", nPos);
m_EditVol.SetWindowText(strPos);
}
CDialogEx::OnHScroll(nSBCode, nPos, pScrollBar);
}
void CMP3PlayerDlg::OnEnChangeEditVolum()
{
// TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다.
CString strPos;
m_EditVol.GetWindowText(strPos);
int nPos = _ttoi(strPos);
m_SliderVol.SetPos(nPos);
MCIWndSetVolume(m_hWav, nPos);
}
这是一种使用播放和滑块控制音量的方法。