|
Recording Waveform Audio
If the MCI waveform-audio recording services do not meet the specifications of
your application, you can handle waveform-audio recording using the
waveform-audio services. For more information, see MCI.
Waveform-Audio Input Data Types
The following data types are defined for waveform-audio input functions:
Type
| Description
| HWAVEIN
| Handle of an open waveform-audio input device.
| WAVEFORMATEX
| Structure that specifies the data formats supported by a particular
waveform-audio input device. This structure is also used for waveform-audio output
devices.
| WAVEHDR
| Structure used as a header for a block of waveform-audio input data. This
structure is also used for waveform-audio output devices.
| WAVEINCAPS
| Structure used to inquire about the capabilities of a particular
waveform-audio input device.
|
Querying Waveform-Audio Input Devices
Before recording waveform audio, you should call the waveInGetDevCaps function to determine the waveform-audio input capabilities of the system.
This function fills a WAVEINCAPS structure with information about the capabilities of a specified device. This
information includes the manufacturer and product identifiers, a product name
for the device, and the version number of the device driver. In addition, the WAVEINCAPS structure provides information about the standard waveform-audio formats that
the device supports.
Opening Waveform-Audio Input Devices
Use the waveInOpen function to open a waveform-audio input device for recording. This function
opens the device associated with the specified device identifier and returns a
handle of the open device by writing the handle of a specified memory location.
Some multimedia computers have multiple waveform-audio input devices. Unless
you know you want to open a specific waveform-audio input device in a system,
you should use the WAVE_MAPPER constant for the device identifier when you open a
device. The waveInOpen function will choose the device in the system best able to record in the
specified data format.
Managing Waveform-Audio Recording
After you open a waveform-audio input device, you can begin recording
waveform-audio data. Waveform-audio data is recorded into application-supplied buffers
specified by a WAVEHDR structure. These data blocks must be prepared before they are used; for more
information, see Audio Data Blocks.
Windows provides the following functions to manage waveform-audio recording.
Function
| Description
| waveInAddBuffer
| Sends a buffer to the device driver so it can be filled with recorded
waveform-audio data.
| waveInReset
| Stops waveform-audio recording and marks all pending buffers as done.
| waveInStart
| Starts waveform-audio recording.
| waveInStop
| Stops waveform-audio recording.
|
Use the waveInAddBuffer function to send buffers to the device driver. As the buffers are filled with
recorded waveform-audio data, the application is notified with a window
message, callback message, thread message, or event, depending on the flag specified
when the device was opened.
Before you begin recording by using waveInStart, you should send at least one buffer to the driver, or incoming data could be
lost.
Before closing the device using waveInClose, call waveInReset to mark any pending data blocks as being done.
Using Window Messages to Manage Waveform-Audio Recording
The following messages can be sent to a window procedure function for managing
waveform-audio recording.
The lParam parameter of MM_WIM_DATA specifies a pointer to a WAVEHDR structure that identifies the buffer. This buffer might not be completely
filled with waveform-audio data; recording can stop before the buffer is filled.
Use the dwBytesRecorded member of the WAVEHDR structure to determine the amount of valid data present in the buffer.
The most useful message is probably MM_WIM_DATA. When your application
finishes using the data block sent by the device driver, you can clean up and free the
data block. Unless you need to allocate memory or initialize variables, you
probably do not need to use the MM_WIM_OPEN and MM_WIM_CLOSE messages.
The callback function for waveform-audio input devices is supplied by the
application. For information about this callback function, see the waveInProc function.
| Last news from Greatis Software |
 |
|
Nostalgia .Net |
|
.Net is powerful, but not all-powerful, so sometimes we need to use Win32 API for our .Net applications. It's simple enough with Platform Invoke if you have Win32 skill, but we do not always have time to dig the ancient documentation, declare the special types that are compatible with Win32, find the values of the Win32's constants and so on. Nostalgia .Net offers several simple-to-use classes, and components that will allow you to forget about the headache of Win32 and just use the power of Win32 in your application the same way as you use the native. Net classes. More » |
| Recommended software for developers |
 |
|
Ultimate Pack |
|
Component pack for Delphi and C++ Builder that contains runtime form designer, runtime object inspector, print suite and much more for the very special price. More » |
 |
|
Form Designer .Net |
|
Unique runtime form design solution that allows to edit any form in .Net WinForms application at runtime with full source codes for only 300 euro! More » |
 |
|
Print Suite .Net |
|
Print Suite .Net is a set of components for easy printing texts, images and grids from your WinForms applications. Full C# source codes are available More » |
 |
|
Gradient Controls .Net |
|
Gradient Controls .Net offers controls with gradient background feature. Labels, panels and so on... Full C# source codes are available More » |
 |
|
Greatis iGrid |
|
iGrid plots drawing grid right over your desktop, so you can use it everywhere, with any drawing application without any special plugins for different graphic editors. More » |
All the contacts and projectsDmitry Vasiliev (just.dmitry)
Related LinksSoftware for Visual Studio .NET developers Software for Delphi and C++ Builder developers Software for Visual Basic 6 developers Delphi Tips&Tricks MegaDetailed.NET More Online Helps Win32 Programmer's Reference Win32 Multimedia Programmer's Reference OLE Programmer's Reference Microsoft Windows Pen API Programmer's Reference Microsoft Windows Sockets 2 Reference Microsoft Windows Telephony API (TAPI) Programmer's Reference Unix Manual Pages
|