Copyright © 2006-2019 MultiMedia Soft

StartSplitFromDirectSoundDevice method

Previous pageReturn to chapter overviewNext page

Remarks

 

Starts a new recording session from the given DirectSound input device and channel and splits incoming sound in left and right channels.

 

After calling this method, the container application is notified through the CallbackForRecordersEvents delegate invoked with the nEvent parameter set to EV_REC_START.

 

During the recording session you can be notified about recorded size for both channels through the CallbackForRecordersEvents delegate invoked with the nEvent parameter set to EV_REC_SPLIT_SIZE.

 

In this case the recording session wouldn't be kept inside the RecordedSound object so the only accepted recording mode, set through the SetRecordingMode method, is REC_MODE_NEW.

 

If the EncodeFormats.ForRecording property is set to ENCODING_FORMAT_WMA, the only supported encoding mode for the EncodeFormats.WMA.EncodeMode property is WMA_ENCODE_CBR_STD_16 and the WMA.CBR property must be set to a value that can support both stereo and mono, so the only compatible combinations are the following:

for sounds at 16000 Hz CBR must be set to 16000 (16 kbps)
for sounds at 22050 Hz CBR must be set to 20000 (20 kbps)
for sounds at 44100 Hz CBR must be set to 32000 (32 kbps) or 48000 (48 kbps)

 

If the EncodeFormats.ForRecording property is set to ENCODING_FORMAT_WAV, the splitting will only work if the EncodeFormats.WAV.EncodeMode property is set to a format supporting both mono and stereo formats meaning that, for example, it will not work for mono-only formats like WAV_ENCODE_GSM_610 or WAV_ENCODE_G721_ADPCM_32.

 

If the EncodeFormats.ForRecording property is set to ENCODING_FORMAT_AIFF, the splitting will only work if the EncodeFormats.AIFF.EncodeMode property is set to a format supporting both mono and stereo formats meaning that, for example, it will not work for mono-only formats like AIFF_ENCODE_GSM_610.

 

If the EncodeFormats.ForRecording property is set to ENCODING_FORMAT_AU, the splitting will only work if the EncodeFormats.AU.EncodeMode property is set to a format supporting both mono and stereo formats meaning that, for example, it will not work for mono-only formats like AU_ENCODE_G721_ADPCM_32 or AU_ENCODE_G723_ADPCM_24 or AU_ENCODE_G723_ADPCM_40.

 

If the EncodeFormats.ForRecording property is set to ENCODING_FORMAT_ACM, the splitting will only work if the selected codec supports both mono and stereo formats meaning that, for example, it will not work for mono-only codecs like GSM 6.10 or G721 ADPCM.

 

The split doesn't work if the EncodeFormats.ForRecording property is set to ENCODING_FORMAT_AAC because this format doesn't support creating mono sounds.

 

For details about the encoding format and parameters applied during recording see the How to perform a recording session section.

 

 

Syntax

 

[Visual Basic]

Public Function StartSplitFromDirectSoundDevice (

nInputDevice as Int16,

nInputChannel as Int16,

strOutputPathLeft as string,

strOutputPathRight as string

) as enumErrorCodes


 

[C#]

public enumErrorCodes StartSplitFromDirectSoundDevice (

Int16 nInputDevice,

Int16 nInputChannel,

string strOutputPathLeft,

string strOutputPathRight

);


 

[C++]

public: enumErrorCodes StartSplitFromDirectSoundDevice (

Int16 nInputDevice,

Int16 nInputChannel,

string strOutputPathLeft,

string strOutputPathRight

);


 

 

Parameter

Description

 

 

nInputDevice

Number representing the zero-based index of the DirectSound input device (sound card) that will be used for recording. Use the value returned by the GetInputDevicesCount method in order to know how many input devices are currently installed on the system and the GetInputDeviceDesc method in order to retrieve the friendly name of each input device.

nInputChannel

Number representing the zero-based index of the input channel (Microphone, Stereo Mix, Line-In, etc.) that will be used for recording on the input device set through the nInputDevice parameter (use -1 for setting the system default input channel).

strOutputPathLeft

String representing the absolute pathname of the destination file that will contain the left channel of recorded data. If this pathname should contain invalid characters, they would be automatically changed into an underscore '_' character.

strOutputPathRight

String representing the absolute pathname of the destination file that will contain the right channel of recorded data. If this pathname should contain invalid characters, they would be automatically changed into an underscore '_' character.

 

 

Return value

 

Value

Meaning

 

 

Negative value

An error occurred. Check the LastError property value in order to see the last error.

enumErrorCodes.ERR_NOERROR (0)

The method call was successful.