Stream Module
- class sudio.stream.stream.Stream(other, obj, name=None, stream_type='multithreading', channel=None, process_type=PipelineProcessType.MAIN)
Bases:
object
Initialize the Stream class for managing audio data streams.
Args: - other: An instance of the main audio processing class. - obj: An object representing the data stream (e.g., list, queue). - name: A name for the stream (optional). - stream_type: Type of streaming operation (‘multithreading’ or reserved for future versions). - channel: Channel index for controlling multi-channel streams (optional). - process_type: Type of stream processing PipelineProcessType (PipelineProcessType.MAIN, PipelineProcessType.MULTI_STREAM, PipelineProcessType.BRANCH, PipelineProcessType.QUEUE).
Raises: - StreamError: If there are issues with the provided parameters based on the selected processing mode.
Note: - This class provides a flexible mechanism for managing different types of audio data streams based on the specified
processing mode and stream type.
- acquire()
Acquire the lock for thread-safe operations.
Note: - This method is used for thread synchronization in multithreading scenarios.
- release()
Release the lock after thread-safe operations.
Note: - This method is used for releasing the lock acquired during thread-safe operations.
- locked()
Check if the lock is currently held.
Returns: - bool: True if the lock is currently held, False otherwise.
Note: - This method is used to check the status of the lock for thread synchronization.
- set(other)
Set the attributes of the current stream based on another stream.
Args: - other: Another instance of the Stream class.
Note: - This method allows setting the attributes of the current stream to match those of another stream.
- type()
Get the type of stream processing.
Returns: - PipelineProcessType: The type of stream processing (MAIN, MULTI_STREAM, BRANCH, QUEUE).
Note: - This method returns the type of stream processing used by the current instance.
- class sudio.stream.streamcontrol.StreamControl(master, record, on_stop, loop_mode, stream_mode)
Bases:
object
The StreamControl class is defined to control the mainstream audio playback for a special ‘record’.
Initialize the StreamControl class to manage the mainstream audio playback for a specific ‘record’.
Args:
master: An instance of the main audio processing class.
record: A dictionary containing information about the audio file to be streamed.
on_stop: Callback function to execute when audio playback stops.
loop_mode: Boolean indicating whether to enable loop mode.
stream_mode: Type of streaming operation (e.g., ‘read’, ‘write’).
Attributes:
self._master: Reference to the main audio processing instance.
self._stream_type: Type of streaming operation.
self._stream_file: File object representing the audio file.
self._stream_file_size: Size of the audio file.
self._size_calculator: Lambda function to calculate the size of a data chunk.
self._stream_data_size: Size of the audio data to be streamed.
self._stream_data_pointer: Current position in the audio file.
self._stream_on_stop: Callback function for when audio playback stops.
self._stream_loop_mode: Boolean indicating whether loop mode is enabled.
self.duration: Duration of the audio file.
self._time_calculator: Lambda function to convert time to byte offset.
self._itime_calculator: Lambda function to convert byte offset to time.
Raises:
PermissionError: If attempting to initialize while another file is streaming.
Note:
This class facilitates the management of audio playback for a specific audio file, ensuring proper synchronization
and handling of playback-related operations.
- time
- isready()
Check if the stream is ready for playback.
Returns: - bool: True if ready, False otherwise
- is_streaming()
Check if the stream is currently in the streaming state.
Returns: - bool: True if streaming, False otherwise
- start()
Start the audio playback stream.
- resume()
Resume the audio playback stream.
- stop()
Stop the audio playback stream.
- pause()
Pause the audio playback stream.
- enable_loop()
Enable looping for the audio playback stream.
- disable_loop()
Disable looping for the audio playback stream.
- class sudio.stream.streamingtimecontroller.StreamingTimeController
Bases:
object