Remarks
Initializes the type of drivers (DirectSound and/or ASIO or WASAPI) for devices managed by the control. This method can be called only once and will affect any other instance of the control inside the application. If the control should be used in conjunction with the Active Sound Recorder control, this one would be affected too.
Next calls to this method will be ignored until the multimedia engine has been reset through the ResetEngine method: in this specific case the InitDriversType method must be called after the ResetEngine method but before the ResetControl method.
The call to this method must be performed before calling any other method that will access the component, possibly in the container form initialization function: calling this method inside the constructor function of the container form will not work and could cause unpredictable results.
If only DirectSound devices are needed, a call to this method can be omitted; if ASIO or WASAPI devices are needed, this method should be called before any other method of the control because it will affect output devices enumeration performed through GetOutputDevicesCount and GetOutputDeviceDesc methods.
For further information about ASIO drivers management, refer to the How to manage ASIO drivers tutorial.
For further details about the use of WASAPI see the How to manage audio flow through WASAPI tutorial.
Syntax
[C++]
short control.InitDriversType (
short nDriverType
);
|
|
Parameter
|
Description
|
|
|
nDriverType
|
Type of drivers managed by the control.
Supported values are the following:
Mnemonic constant
|
Value
|
Meaning
|
DRIVER_TYPE_DIRECT_SOUND (default)
|
0
|
Only DirectSound devices are supported and ASIO devices will be ignored.
|
DRIVER_TYPE_ASIO
|
1
|
Only ASIO devices are supported and DirectSound devices will be ignored.
|
DRIVER_TYPE_BOTH_DS_FIRST
|
2
|
Both DirectSound and ASIO devices are supported, DirectSound output devices will be listed first when enumerating output devices through GetOutputDevicesCount and GetOutputDeviceDesc methods.
If a certain sound card supports both DirectSound and ASIO drivers, it will be seen as two separate sound cards; it's in any case important to know that being able to manage both DirectSound and ASIO drivers at the same time is not guaranteed to be supported by all sound cards.
IMPORTANT NOTES:
• | when using this setting for playback of video clips in conjunction with a DirectSound sound card, you could hear the audio stream having a noticeable delay respect to the video stream: this can be usually reduced/eliminated by lowering the value of the BufferLength property around 150 milliseconds. |
• | when using this setting for playback of sound files, on DirectSound output devices you may note a certain slowness of commands like PauseSound or SeekSound: this can be reduced by lowering the value of the BufferLength property around 100-150 milliseconds. |
|
DRIVER_TYPE_BOTH_ASIO_FIRST
|
3
|
Both DirectSound and ASIO devices are supported, ASIO devices will be listed first when enumerating output devices through GetOutputDevicesCount and GetOutputDeviceDesc methods.
If a certain sound card supports both DirectSound and ASIO drivers, it will be seen as two separate sound cards; it's in any case important to know that being able to manage both DirectSound and ASIO drivers at the same time is not guaranteed to be supported by all sound cards.
IMPORTANT NOTES:
• | when using this setting for playback of video clips in conjunction with a DirectSound sound card, you could hear the audio stream having a noticeable delay respect to the video stream: this can be usually reduced/eliminated by lowering the value of the BufferLength property around 150 milliseconds. |
• | when using this setting for playback of sound files, on DirectSound output devices you may note a certain slowness of commands like PauseSound or SeekSound: this can be reduced by lowering the value of the BufferLength property around 100-150 milliseconds. |
|
DRIVER_TYPE_WASAPI
|
4
|
Only WASAPI devices are supported: this setting can be only applied under Windows Vista and later versions.
|
|
Return value
Value
|
Meaning
|
|
|
Negative value
|
An error occurred, check the LastError property value in order to get the error code
|
enumErrorCodes.ERR_NOERROR (0)
|
The method call was successful
|