dwReturn = mciSendCommand(0, MCI_OPEN, MCI_OPEN_ELEMENT | MCI_OPEN_TYPE
, (DWORD_PTR)(LPVOID) &mciOpenParms);
오류 -message is "장치 이름이이 응용 프로그램에서 이미 별칭으로 사용 중입니다. 고유 한 별칭을 사용하십시오."왜 MCI_OPEN이 실패하고 잘못된 장치 ID를 반환합니까?
왜 오류가 발생합니까?
dwReturn = mciSendCommand(0, MCI_OPEN, MCI_OPEN_ELEMENT | MCI_OPEN_TYPE
, (DWORD_PTR)(LPVOID) &mciOpenParms);
오류 -message is "장치 이름이이 응용 프로그램에서 이미 별칭으로 사용 중입니다. 고유 한 별칭을 사용하십시오."왜 MCI_OPEN이 실패하고 잘못된 장치 ID를 반환합니까?
왜 오류가 발생합니까?
이미 열린 mci 장치를 다시 열려고 시도 할 때 발생할 수 있습니다.
장치 나 파일을 처음 열 때 MCI_OPEN_SHAREABLE 플래그가 지정되어 있지 않으면 장치 나 파일에 대한 모든 후속 MCI_OPEN 명령이 실패합니다.
기술적으로는 올바르지 만이 답변은 도움이되지 못했습니다.
"장치 나 파일을 처음 열 때 MCI_OPEN_SHAREABLE 플래그가 지정되어 있지 않으면 장치 나 파일에 대한 모든 후속 MCI_OPEN 명령이 실패합니다."
나는 이런 식으로, 어떤 MCI_OPEN 전에 MCI_CLOSE을해야했다 발견
MciClose(void)
{
int Result;
MCI_GENERIC_PARMS mciGenericParams;
DWORD dwFlags;
mciGenericParams.dwCallback = (long)TestSoundForm->Handle;
dwFlags = MCI_NOTIFY | MCI_WAIT;
Result = mciSendCommand(MciDeviceID, MCI_CLOSE, dwFlags, (long)&mciGenericParams);
// MCIERR_INVALID_DEVICE_ID occurs if the device is already closed.
if(Result == 0 || Result == MCIERR_INVALID_DEVICE_ID)return;
else MciError(Result, "MCI_CLOSE Error"); // display the error
}
는 또한, 여기에이 오디오 장치를 프로그래밍에 아주 좋은 기사입니다.
http://www.c-sharpcorner.com/uploadfile/GemingLeader/creating-a-sound-recorder-in-c-and-C-Sharp/