• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 489
  • Last Modified:

Recording and Play Wave file IN VC++4.0

Dear
     
  I want to play and record wave file VC++4.0
 What is the function call coding and paramters?
 Thank You for help      
0
logout
Asked:
logout
1 Solution
 
galkinCommented:
To play wav files use PlaySound Win32 multimedia function. Be sure to build you project with winmm.lib and when compiling include mmsystem.h


0
 
logoutAuthor Commented:
Dear
     Which lib function need to be called?
0
 
galkinCommented:
The function is PlaySound implemented in winmm.dll which can be found in system directory. Corresponding lib file is winmm.lib that comes with windows SDK or VC++ or BC++.Header file needed is mmsystem.h which also comes with Windows SDK, VC++ or BC++ and can be found in include directory.
0
Cloud Class® Course: MCSA MCSE Windows Server 2012

This course teaches how to install and configure Windows Server 2012 R2.  It is the first step on your path to becoming a Microsoft Certified Solutions Expert (MCSE).

 
andlaCommented:
Recording sounds.

DWORD recordWAVEFile(DWORD dwMilliSeconds);

DWORD recordWAVEFile(DWORD dwMilliSeconds)
{
    UINT wDeviceID;
    DWORD dwReturn;
    MCI_OPEN_PARMS mciOpenParms;
    MCI_RECORD_PARMS mciRecordParms;
    MCI_SAVE_PARMS mciSaveParms;
    MCI_PLAY_PARMS mciPlayParms;
 
    /*
     * Open a waveform device with a new file for recording.
     */
    mciOpenParms.lpstrDeviceType = "waveaudio";
    mciOpenParms.lpstrElementName = "";
    if (dwReturn = mciSendCommand(0, MCI_OPEN,
            MCI_OPEN_ELEMENT | MCI_OPEN_TYPE,
            (DWORD)(LPVOID) &mciOpenParms)) {
        /*
         * Failed to open device. Don't close it; just return
         * error.
         */
        return dwReturn;
    }
 
    /* Device opened successfully. Get the device ID. */
    wDeviceID = mciOpenParms.wDeviceID;
 
    /*
     * Begin recording and record for the specified number
     * of milliseconds. Wait for recording to complete before
     * continuing. Assume the default time format for the
     * waveform device (milliseconds).
     */
    mciRecordParms.dwTo = dwMilliSeconds;
    if (dwReturn = mciSendCommand(wDeviceID, MCI_RECORD,
            MCI_TO | MCI_WAIT, (DWORD)(LPVOID) &mciRecordParms)) {
        mciSendCommand(wDeviceID, MCI_CLOSE, 0, NULL);
        return dwReturn;
    }
 
    /* Play the recording and query user to save the file. */
    mciPlayParms.dwFrom = 0;
    if (dwReturn = mciSendCommand(wDeviceID, MCI_PLAY,
            MCI_FROM | MCI_WAIT,
            (DWORD)(LPVOID) &mciPlayParms)) {
        mciSendCommand(wDeviceID, MCI_CLOSE, 0, NULL);
        return dwReturn;
    }
            HWND hMainWnd;
            hMainWnd=hwnd;
    if (MessageBox(hMainWnd, "Do you want to save this recording?",
            "", MB_YESNO) == IDNO) {
        mciSendCommand(wDeviceID, MCI_CLOSE, 0, NULL);
        return 0;
    }
 
    /*
     * Save the recording to a file named TEMPFILE.WAV. Wait for
     * the operation to finish before continuing.
     */
    mciSaveParms.lpfilename = "tempfile.wav";
    if (dwReturn = mciSendCommand(wDeviceID, MCI_SAVE,
            MCI_SAVE_FILE | MCI_WAIT,
            (DWORD)(LPVOID) &mciSaveParms)) {
        mciSendCommand(wDeviceID, MCI_CLOSE, 0, NULL);
        return dwReturn;
    }
 
    return 0;
}

0
 
logoutAuthor Commented:
DWORD dwMilliSeconds is parameter.
Does that parameter need to assign a value
0
 
dylanwolfCommented:
What's the deference between mci function and wavein function?
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Free Tool: SSL Checker

Scans your site and returns information about your SSL implementation and certificate. Helpful for debugging and validating your SSL configuration.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now