BubbleNormalAudio class

basic chat bubble type audio message widget

onSeekChanged double pass function to take actions on seek changes

onPlayPauseButtonClick void function to handle play pause button click

isPlaying,isPause parameters to handle playing state

duration is the duration of the audio message in seconds

position is the current position of the audio message playing in seconds

isLoading is the loading state of the audio

chat bubble BorderRadius can be customized using bubbleRadius

chat bubble color can be customized using color

chat bubble tail can be customized using tail

message sender can be changed using isSender

sent,delivered and seen can be used to display the message state

chat bubble TextStyle can be customized using textStyle

waveformData provides normalized (0.0–1.0) bar heights for waveform visualization. When null the default Slider is used.

waveformActiveColor is the color of the played portion of the waveform

waveformInactiveColor is the color of the unplayed portion

showPlaybackSpeed shows a speed toggle button (1x / 1.5x / 2x)

playbackSpeed is the current playback speed displayed on the button

onPlaybackSpeedChanged is called with the new speed when the user taps the speed button

timestamp is an optional string shown at the bottom-right of the bubble

isEdited shows an "Edited" label next to the status area when true

isForwarded shows a "Forwarded" banner at the top of the bubble when true

messageId is an optional identifier for tracking purposes

Inheritance

Constructors

BubbleNormalAudio({Key? key, required void onSeekChanged(double value), required void onPlayPauseButtonClick(), bool isPlaying = false, BoxConstraints? constraints, bool isPause = false, double? duration, double? position, bool isLoading = true, double bubbleRadius = defaultBubbleRadiusAudio, bool isSender = true, Color color = Colors.white70, bool tail = true, bool sent = false, bool delivered = false, bool seen = false, TextStyle textStyle = const TextStyle(color: Colors.black87, fontSize: 12), String? timestamp, bool isEdited = false, bool isForwarded = false, String? messageId, List<double>? waveformData, Color waveformActiveColor = Colors.blue, Color waveformInactiveColor = Colors.grey, bool showPlaybackSpeed = false, double playbackSpeed = 1.0, ValueChanged<double>? onPlaybackSpeedChanged})
Constructor
const

Properties

bubbleRadius double
chat bubble BorderRadius can be customized using bubbleRadius
final
color Color
The background color of the chat bubble
final
constraints BoxConstraints?
Constraints for the chat bubble
final
delivered bool
Whether the message has been delivered (shows two ticks)
final
duration double?
duration is the duration of the audio message in seconds
final
hashCode int
The hash code for this object.
no setterinherited
isEdited bool
shows an "Edited" label next to the status area when true
final
isForwarded bool
shows a "Forwarded" banner at the top of the bubble when true
final
isLoading bool
Whether the audio is currently loading
final
isPause bool
isPlaying,isPause parameters to handle playing state
final
isPlaying bool
isPlaying,isPause parameters to handle playing state
final
isSender bool
Determines if the message is from the sender (true) or receiver (false)
final
key Key?
Controls how one widget replaces another widget in the tree.
finalinherited
messageId String?
optional identifier for tracking the message
final
onPlaybackSpeedChanged ValueChanged<double>?
Called with the next speed value when the user taps the speed button. Cycles: 1.0 → 1.5 → 2.0 → 1.0
final
onPlayPauseButtonClick → void Function()
onPlayPauseButtonClick void function to handle play pause button click
final
onSeekChanged → void Function(double value)
onSeekChanged double pass function to take actions on seek changes
final
playbackSpeed double
Current playback speed displayed on the speed button
final
position double?
position is the current position of the audio message playing in seconds
final
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
seen bool
Whether the message has been seen (shows two blue ticks)
final
sent bool
Whether the message has been sent (shows one tick)
final
showPlaybackSpeed bool
Shows a playback speed toggle button (1x / 1.5x / 2x)
final
tail bool
Whether to show the tail of the chat bubble
final
textStyle TextStyle
Custom text style for the duration and position text
final
timestamp String?
optional timestamp string shown at the bottom-right (e.g. "12:34 PM")
final
waveformActiveColor Color
Color of the played portion of the waveform
final
waveformData List<double>?
Normalized (0.0–1.0) waveform bar heights. When provided, a waveform visualization replaces the default Slider.
final
waveformInactiveColor Color
Color of the unplayed portion of the waveform
final

Methods

audioTimer(double duration, double position) String
audioTimer to get the audio duration and position
build(BuildContext context) Widget
chat bubble builder method
override
createElement() StatelessElement
Creates a StatelessElement to manage this widget's location in the tree.
inherited
debugDescribeChildren() List<DiagnosticsNode>
Returns a list of DiagnosticsNode objects describing this node's children.
inherited
debugFillProperties(DiagnosticPropertiesBuilder properties) → void
Add additional properties associated with the node.
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toDiagnosticsNode({String? name, DiagnosticsTreeStyle? style}) DiagnosticsNode
Returns a debug representation of the object that is used by debugging tools and by DiagnosticsNode.toStringDeep.
inherited
toString({DiagnosticLevel minLevel = DiagnosticLevel.info}) String
A string representation of this object.
inherited
toStringDeep({String prefixLineOne = '', String? prefixOtherLines, DiagnosticLevel minLevel = DiagnosticLevel.debug, int wrapWidth = 65}) String
Returns a string representation of this node and its descendants.
inherited
toStringShallow({String joiner = ', ', DiagnosticLevel minLevel = DiagnosticLevel.debug}) String
Returns a one-line detailed description of the object.
inherited
toStringShort() String
A short, textual description of this widget.
inherited

Operators

operator ==(Object other) bool
The equality operator.
inherited