Sets the playback position of a mixer source channel.
Namespace: Un4seen.Bass.AddOn.Mix
Assembly: Bass.Net (in Bass.Net.dll) Version: 2.4.17.5
Syntax
[DllImportAttribute("bassmix")] public static bool BASS_Mixer_ChannelSetPosition( int handle, long pos, BASSMode mode )
Parameters
- handle
- Type: SystemInt32
The mixer source channel handle (which was add via BASS_Mixer_StreamAddChannel(Int32, Int32, BASSFlag) or BASS_Mixer_StreamAddChannelEx(Int32, Int32, BASSFlag, Int64, Int64)) beforehand). - pos
- Type: SystemInt64
The position, in bytes. With MOD musics, the MakeLong(Int16, Int16)(order,row) method can be used to set the position in orders and rows instead of bytes. - mode
- Type: Un4seen.BassBASSModeOther modes and flags may be supported by add-ons, see the documentation.
BASS_POS_BYTE The position is in bytes, which will be rounded down to the nearest sample boundary. BASS_POS_MUSIC_ORDER The position is in orders and rows... use MakeLong(Int16, Int16). (HMUSIC only). BASS_POS_OGG The position is a bitstream number in an OGG file... 0 = first. BASS_POS_DECODETO Flag: Decode/render up to the position rather than seeking to it. This is useful for streams that are unseekable or that have inexact seeking, but it is generally slower than normal seeking and the requested position cannot be behind the current decoding position. This flag can only be used with the BASS_POS_BYTE mode. BASS_POS_INEXACT Flag: Allow inexact seeking. For speed, seeking may stop at the beginning of a block rather than partially processing the block to reach the requested position. BASS_POS_RELATIVE Flag: The requested position is relative to the current position. pos is treated as signed in this case and can be negative. Unless the BASS_POS_MIXER_RESET flag is also used, this is relative to the current decoding/processing position, which will be ahead of the currently heard position if the mixer output is buffered. BASS_MUSIC_POSRESET Flag: Stop all notes. This flag is applied automatically if it has been set on the channel, eg. via BASS_ChannelFlags(Int32, BASSFlag, BASSFlag). (HMUSIC). BASS_MUSIC_POSRESETEX Flag: Stop all notes and reset bpm/etc. This flag is applied automatically if it has been set on the channel, eg. via BASS_ChannelFlags(Int32, BASSFlag, BASSFlag). (HMUSIC). BASS_MIXER_CHAN_NORAMPIN Flag: Don't ramp-in the start after seeking. This flag is applied automatically if it has been set on the channel, eg. via BASS_ChannelFlags(Int32, BASSFlag, BASSFlag). BASS_POS_MIXER_RESET Flag: Flush the mixer's playback buffer, so that the new position is heard immediately in the mixer output. This generally should not be used when the mixer is playing multiple sources, as it will cause a skip in the sound of the other sources. This flag has no effect if the mixer has the BASS_STREAM_DECODE flag set, as the mixer does not have a playback buffer then.
Return Value
Type: BooleanIf successful, then is returned, else is returned. Use BASS_ErrorGetCode to get the error code.
Remarks
For custom looping purposes (eg. in a mixtime SYNCPROC), the standard BASS_ChannelSetPosition(Int32, Int64, BASSMode) function should be used instead of this.
The playback buffer of the mixer can be flushed by using pos = 0.
ERROR CODE | Description |
---|---|
BASS_ERROR_HANDLE | The channel is not plugged into a mixer. |
BASS_ERROR_NOTFILE | The stream is not a file stream. |
BASS_ERROR_POSITION | The requested position is illegal. |
BASS_ERROR_NOTAVAIL | The download has not yet reached the requested position. |
BASS_ERROR_UNKNOWN | Some other mystery problem! |
Examples
BassMix.BASS_Mixer_ChannelSetPosition(streamA, Bass.BASS_ChannelSeconds2Bytes(streamA, 35.0));
See Also