Buscar pacotes, repositórios e categorias de apps

Capa de audio_video_progress_bar
Detalhes do pacotev2.0.3

audio_video_progress_bar

Um widget de barra de progresso para mostrar ou alterar a posição de um fluxo de áudio ou vídeo.

AndroidiOSWebmacOSWindowsLinux
Downloads em 30 dias
65 mil
Curtidas
446
Pontos Pub
150

Instalar pacote

flutter pub add audio_video_progress_bar

Visão geral do pacote

Orientação gerada a partir de informações públicas. Apenas para referência.

Um widget do Flutter projetado para exibir e controlar a posição de reprodução de fluxos de áudio ou vídeo. Ele fornece uma barra de progresso visual que pode ser interagida para procurar conteúdo multimídia. O widget é personalizável e funciona em múltiplas plataformas, incluindo móvel, web e desktop. Integra-se perfeitamente com reprodutores de áudio e vídeo, oferecendo uma experiência do usuário suave durante a reprodução.

Casos de uso

  • Interfaces de player de mídia
  • Navegação pela linha do tempo do vídeo
  • Posicionamento da faixa de áudio
  • Controles de mídia interativa
  • Interfaces de aplicativos de streaming
  • Reprodução ao vivo de áudio/vídeo

Principais recursos

  • Barra de progresso navegável
  • Compatibilidade multiplataforma
  • Estilo personalizável
  • Feedback de reprodução em tempo real
  • Suporte para áudio e vídeo
  • Interação tátil responsiva

Indicado para

  • Desenvolvedores construindo aplicativos de mídia
  • Designers de UI que precisam de indicadores interativos de progresso
  • Aplicativos que exigem controle preciso de mídia
  • Aplicações de áudio/vídeo multiplataforma
  • plataformas de streaming educacional ou de entretenimento

Considerações

  • Requer integração com um player de mídia
  • Limitado ao controle da posição de reprodução
  • Pode ser necessário gerenciamento adicional de estado
  • Não adequado para casos de uso não-mídia
  • Depende da lógica externa de manipulação de mídia

README original

Snapshot do README original do repositório-fonte vinculado. Consulte o repositório para o conteúdo mais recente.

audio_video_progress_bar

A progress bar widget to show or change the position of an audio or video stream.

Note: This package does not play audio or video itself. It's just a widget you can use to show the progress of your audio or video player. This widget is easier to connect to a media player than the Flutter Slider widget is. It also supports showing the buffered status for streamed media.

Example

Add the ProgressBar widget to your UI. A static example would look like this:

ProgressBar(
  progress: Duration(milliseconds: 1000),
  buffered: Duration(milliseconds: 2000),
  total: Duration(milliseconds: 5000),
  onSeek: (duration) {
    print('User selected a new time: $duration');
  },
),

However, you would normally wrap it in a builder widget that is updated by an audio or video player. That might look something like this:

StreamBuilder<DurationState>(
  stream: _durationState,
  builder: (context, snapshot) {
    final durationState = snapshot.data;
    final progress = durationState?.progress ?? Duration.zero;
    final buffered = durationState?.buffered ?? Duration.zero;
    final total = durationState?.total ?? Duration.zero;
    return ProgressBar(
      progress: progress,
      buffered: buffered,
      total: total,
      onSeek: (duration) {
        _player.seek(duration);
      },
    );
  },
),

...

class DurationState {
  const DurationState({this.progress, this.buffered, this.total});
  final Duration progress;
  final Duration buffered;
  final Duration total;
}

You can check out the GitHub repo for the full example using the just_audio plugin. There is no requirement to use just_audio or even a StreamBuilder, though. You can use any audio or video player that provides updates about the current play location. Just rebuild the ProgressBar widget with the new Duration states.

You'll probably want to add other buttons like start and pause, but these are not included with this package. They aren't hard to build, though, and you can find an example in the GitHub repo.

Thanks to the just_audio code example for help with the buttons.

Customization

The default colors use the theme's primary color, so changing the theme will also update this widget:

However, you can set your own colors and sizes as well:

ProgressBar(
  progress: progress,
  buffered: buffered,
  total: total,
  progressBarColor: Colors.red,
  baseBarColor: Colors.white.withOpacity(0.24),
  bufferedBarColor: Colors.white.withOpacity(0.24),
  thumbColor: Colors.white,
  barHeight: 3.0,
  thumbRadius: 5.0,
  onSeek: (duration) {
    _player.seek(duration);
  },
);

Which would look like this (if the app has a dark theme):

You can also set the location of the time labels:

ProgressBar(
  ...
  timeLabelLocation: TimeLabelLocation.sides,
);

Now the time labels are displayed on the side:

Notes

If your interested in how this widget was made, check out the article Creating a Flutter widget from scratch.

Please open an issue if you find any bugs.

New feature requests

There are a number of interesting feature requests in the GitHub issues. Unfortunately, with the other projects I have going on, I generally don't get around to implementing very many of them. Your best bet is to copy the source code and implement the feature yourself. On the other hand, if the issue you is important enough to you or your company, I'm open to being hired to add your desired feature to this package or to create a custom solution.

Categorias

Repositório-fonte

Projetos que usam este pacote