搜索插件、代码仓与 APP 分类

插件详情v1.1.0

audio_visualizer

一个用于无缝可视化来自文件、资源、HTTP 流、麦克风输入和原始 PCM16 数据的音频的 Flutter 包。

AndroidiOS
近 30 天下载
561
喜欢数
77
Pub 分数
130

安装插件

flutter pub add audio_visualizer

插件介绍

基于插件公开信息、社区数据与项目使用情况整理的选型参考。

一个 Flutter 包,可从各种来源(包括文件、资源、HTTP 流、麦克风输入和原始 PCM16 数据)实现实时音频可视化。它与 Flutter 的渲染管道无缝集成,使开发者能够创建动态音频波形、频谱分析仪和自定义视觉效果。设计简洁且性能出色,支持 Android 和 iOS 平台。适用于音乐播放器、实时音频应用和交互式音频体验。

适合场景

  • 音乐播放器波形显示
  • 实时麦克风可视化
  • 教育类应用程序中的音频分析
  • 互动艺术装置
  • 实时音频反馈系统

主要特点

  • 支持多种音频输入类型
  • 实时可视化渲染
  • 跨平台(Android 和 iOS)
  • 可自定义的视觉样式
  • 高效的PCM16数据处理

适合对象

  • 音频应用开发者
  • Flutter UI 设计师
  • 教育软件创作者
  • 互动媒体项目

使用建议

  • 需要 Android 和 iOS 的音频权限
  • 性能在低端设备上可能有所不同
  • 仅限基本可视化,不支持高级效果

原始 README

以下为关联源码仓库的 README 原文快照,最新内容请访问源码仓库。

🎵 Audio Visualizer

A Flutter package for seamlessly visualizing audio from files, assets, HTTP streams, microphone input, and raw PCM16 data.

Explore all usage examples in the example directory.

Demo App 1 Demo App 2


✨ Features

Feature Android iOS macOS
Visualize File ✅ ✅ ✅
Visualize Asset ✅ ✅ ✅
Visualize HTTP ✅ ✅ ✅
Visualize Microphone ✅ ✅ ✅
Visualize Raw PCM16 ✅ ✅ ✅

📦 Components Overview

This package provides three major components:

  1. VisualizerPlayer
    For visualizing audio from files, assets, and HTTP streams.

  2. PCMVisualizer
    For visualizing raw PCM16 data from custom sources.


🚀 Visualizer Styles and Bands

Pre-built Visualizer Styles

Elevate your app's aesthetic with four stunning, ready-to-use visualizer widgets:

  • BarVisualizer
  • CircleVisualizer
  • LineVisualizer
  • MultiWaveVisualizer
  • RainbowBlockVisualizer
Band Types

Choose from six band types to suit your visualization needs:

  • fourBand
  • fourBandVisual
  • eightBand
  • tenBand
  • twentySixBand
  • thirtyOneBand

🎧 How to Use

Visualizing an Audio File

Load audio using the appropriate prefix:

  • Assets: asset://path_to_asset
  • Files: file://path_to_file
  • HTTP: http://url or https://url

Example:

// Initialize VisualizerPlayer
final audioPlayer = VisualizerPlayer();
await audioPlayer.initialize();
await audioPlayer.setDataSource("asset://assets/sample.mp3");
await audioPlayer.play();

// Visualize with BarVisualizer
ListenableBuilder(
   listenable: audioPlayer,
   builder: (context, child) {
      return BarVisualizer(
         input: audioPlayer.value.waveform,
         backgroundColor: Colors.black,
         color: Colors.greenAccent,
         gap: 2,
      );
   },
),

// Dispose VisualizerPlayer
audioPlayer.dispose();

Visualizing Microphone Input

This package does not directly handle microphone input. You can use the record package to capture audio and feed it into the visualizer.

Example:

// Initialize PCMVisualizer
final pcmVisualizer = PCMVisualizer();
pcmVisualizer.feed(rawPCM16Data);

// Visualize with BarVisualizer
ListenableBuilder(
   listenable: pcmVisualizer,
   builder: (context, child) {
      return BarVisualizer(
         input: pcmVisualizer.value.waveform,
         backgroundColor: Colors.black,
         color: Colors.greenAccent,
         gap: 2,
      );
   },
),

// Dispose PCMVisualizer
pcmVisualizer.dispose();

⚙️ Permissions

On Android, the following permission is required to visualize audio:

<uses-permission android:name="android.permission.RECORD_AUDIO" />

🙏 Acknowledgements

This project is inspired by and leverages ideas and code from the following:


所属分类

依赖

依赖清单 1 项

  • plugin_platform_interface^2.0.2

源码仓库

使用此插件的项目

暂无相关数据。