Remarks
Starts a new recording session from a sound in RAW format contained inside a memory buffer and splits incoming sound in left and right channels
During the recording sessions the container application is notified through the CallbackForRecordersEvents delegate which is invoked with the nEvent parameter set to EV_REC_START at the beginning and to EV_REC_STOP at the end. The current percentage of advancement is notified through the EV_REC_PERC event.
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 recording from files see the How to record from files, memory or clipboard section.
Syntax
[Visual Basic]
Public Function StartSplitFromMemoryRaw (
strOutputPathLeft as string,
strOutputPathRight as string,
pBuffer() as Byte,
nBufferLength as Int32,
nEncodeMode as enumRAWEncodeModes,
bIsBigEndian as Boolean,
nFrequency as Int32,
nChannels as Int32
) as enumErrorCodes
|
|
[C#]
public enumErrorCodes StartSplitFromMemoryRaw (
string strOutputPathLeft,
string strOutputPathRight,
byte[] pBuffer,
Int32 nBufferLength,
enumRAWEncodeModes nEncodeMode,
bool bIsBigEndian,
Int32 nFrequency,
Int32 nChannels
);
|
|
[C++]
public: enumErrorCodes StartSplitFromMemoryRaw (
string strOutputPathLeft,
string strOutputPathRight,
unsigned char __gc[] pBuffer,
Int32 nBufferLength,
enumRAWEncodeModes nEncodeMode,
bool bIsBigEndian,
Int32 nFrequency,
Int32 nChannels
);
|
|
Parameter
|
Description
|
|
|
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.
|
pBuffer
|
Input buffer containing the original sound
|
nBufferLen
|
Length of the input buffer expressed in bytes
|
nEncodeMode
|
Encode mode used to encode the RAW file.
Supported values are the following:
Mnemonic constant
|
Value
|
Meaning
|
RAW_ENCODE_PCM_U8
|
0
|
RAW PCM 8 bits Unsigned
|
RAW_ENCODE_PCM_S8
|
1
|
RAW PCM 8 bits Signed
|
RAW_ENCODE_PCM_S16
|
2
|
RAW PCM 16 bits Signed
|
RAW_ENCODE_PCM_S24
|
3
|
RAW PCM 24 bits Signed
|
RAW_ENCODE_PCM_S32
|
4
|
RAW PCM 32 bits Signed
|
RAW_ENCODE_FLOAT32
|
5
|
RAW 32 bits floating point
|
RAW_ENCODE_G711_ULAW
|
6
|
RAW G711 U-LAW
|
RAW_ENCODE_G711_ALAW
|
7
|
RAW G711 A-LAW
|
RAW_ENCODE_GSM_610
|
8
|
RAW GSM 6.10
|
RAW_ENCODE_DIALOGIC_VOX
|
9
|
RAW Dialogic ADPCM VOX
|
|
bIsBigEndian
|
Boolean flag that specifies if bits order inside the RAW file are little-endian or big-endian
Supported values are the following:
Mnemonic Value
|
Meaning
|
false
|
The RAW file is encoded using little-endian
|
true
|
The RAW file is encoded using big-endian
|
|
nFrequency
|
Sample rate of the RAW file (e.g. 44100)
|
nChannels
|
Number of channels of the RAW file: must be set to 2 for stereo because splitting of mono files is not supported.
|
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.
|
|