A lightweight audiowave progressbar for Android, written in Kotlin, that can also function as a seekbar.
Audiowave Progressbar is an Android library that displays audio waveforms as interactive progress bars. It transforms audio data into visual wave representations and allows users to seek through audio content by touching the waveform. The library handles both raw and pre-processed audio data while providing extensive customization options.
Android developers building audio applications who need waveform visualization with seek functionality, particularly those using Kotlin who want a lightweight, customizable solution.
Developers choose this library for its simplicity, performance, and Kotlin-first design. It offers a clean API with both Java and Kotlin support, smooth animations, and extensive visual customization while maintaining a small footprint.
Lightweight audiowave progressbar for Android
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Provides granular control over chunk width, height, spacing, color, and radius through XML attributes, enabling precise waveform styling to match app design.
Includes an 'animateExpansion' attribute that can be disabled for smooth RecyclerView scrolling, addressing common performance issues in dynamic lists.
Offers property delegates for event listeners in Kotlin, allowing cleaner and more idiomatic code compared to traditional Java-style interfaces.
Supports both raw byte arrays with async downsampling and pre-scaled data, catering to different audio processing stages and optimization needs.
The default animated expansion causes laggy scrolling in RecyclerView, forcing developers to manually disable it, which adds complexity and risk of oversight.
The README admits that better precision is a planned future enhancement, indicating current limitations in detailed audio visualization accuracy.
While Kotlin-friendly, the library retains Java-style listeners alongside property delegates, potentially leading to inconsistent code patterns in mixed-language projects.