Encodes sample data, and writes it to the file or network.
This overload uses an IntPtr to point to the memory block containing the data.
Namespace: Un4seen.Bass.AddOn.Wma
Assembly: Bass.Net (in Bass.Net.dll) Version: 2.4.17.5
Syntax
[DllImportAttribute("basswma")] public static bool BASS_WMA_EncodeWrite( int handle, IntPtr buffer, int length )
Parameters
- handle
- Type: SystemInt32
The encoder handle. - buffer
- Type: SystemIntPtr
The buffer containing the sample data. - length
- Type: SystemInt32
The number of BYTES in the buffer.
Return Value
Type: BooleanIf succesful, is returned, else is returned. Use BASS_ErrorGetCode to get the error code.
Remarks
There is generally no need to call this function if the BASS_WMA_ENCODE_SOURCE flag has been set on the encoder, as the encoder will automatically be fed the data that its source BASS channel produces.
ERROR CODE | Description |
---|---|
BASS_ERROR_HANDLE | handle is not valid. |
BASS_ERROR_MEM | There is insufficient memory. |
BASS_ERROR_UNKNOWN | Some other mystery problem! |
Examples
private RECORDPROC _myRecProc; ... if ( Bass.BASS_RecordInit(-1) ) { int enc = BassWma.BASS_WMA_EncodeOpenNetwork(44100, 2, BASSWMAEncode.BASS_WMA_ENCODE_DEFAULT, 128000, 0, 5); _myRecProc = new RECORDPROC(MyRecording); int recHandle = Bass.BASS_RecordStart(44100, 2, BASSFlag.BASS_DEFAULT, _myRecProc, new IntPtr(enc)); } ... private bool MyRecording(int handle, IntPtr buffer, int length, IntPtr user) { if (length > 0 && buffer != IntPtr.Zero) { // write the recorded data to the encoder BassWma.BASS_WMA_EncodeWrite(user.ToInt32(), buffer, length); } return true; }
See Also