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
-
- Object
- DiagnosticableTree
- Widget
- StatelessWidget
- BubbleNormalAudio
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