Buscar pacotes, repositórios e categorias de apps

Capa de floating
Detalhes do pacotev6.0.0

floating

Gerenciamento do modo Picture in Picture para Flutter. Disponível apenas para Android.

Android
Downloads em 30 dias
22,7 mil
Curtidas
270
Pontos Pub
160

Instalar pacote

flutter pub add floating

Visão geral do pacote

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

O pacote flutuante habilita o gerenciamento do modo Picture-in-Picture (PiP) em aplicativos Flutter, especificamente para Android. Permite que os desenvolvedores realizem transições suaves da reprodução de mídia para uma pequena janela flutuante que pode ser movida e redimensionada enquanto o usuário interage com outros aplicativos. Isso é particularmente útil para conteúdo de vídeo ou áudio que deve continuar reproduzindo em segundo plano. O pacote integra diretamente a API PiP do Android, fornecendo uma interface simples para controlar o comportamento do PiP. Ele suporta tanto casos de uso de vídeo quanto de áudio onde a reprodução contínua é desejada sem foco total no aplicativo.

Casos de uso

  • Reprodução de vídeo de fundo
  • Transmissão de áudio em modo PiP
  • Aplicativos de mídia que exigem reprodução contínua
  • Suporte a multitarefa no Android
  • Chamadas de vídeo com visualização minimizada

Principais recursos

  • Suporte PiP exclusivo para Android
  • API simples para ativação de PiP
  • Gerenciamento automático do estado PiP
  • Tamanho e posição personalizáveis do PiP
  • Integração com a API PiP do Android

Indicado para

  • Aplicativos de player de vídeo
  • Aplicativos de streaming de áudio
  • Aplicativos educacionais com conteúdo multimídia
  • Aplicativos que precisam de recursos de multitarefa
  • Desenvolvedores direcionados a dispositivos Android

Considerações

  • Apenas disponível no Android
  • Requer Android 8.0+ (API 26)
  • Limitado a cenários de reprodução de mídia
  • Sem suporte para iOS
  • Deve lidar corretamente com os eventos do ciclo de vida do PiP

README original

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

floating

codecov

Picture in Picture management for Flutter. Android only

Picture in picture demo

App configuration

Add android:supportsPictureInPicture="true" line to the <activity> tag in android/src/main/AndroidManifest.xml:

<manifest>
   <application>
        <activity
            android:name=".MainActivity"
            android:supportsPictureInPicture="true"
            ...

Widget

This package provides a helper PiPSwitcher widget for switching the displayed widgets according to current PiP status. Use it like so:

PiPSwitcher(
    childWhenDisabled: Scaffold(...),
    childWhenEnabled: JustVideo(), 
)

API

PiP mode in desired mode is available only in Android so iOS and web support is not planned until the platforms adds native support for such feature.

Create a Floating instance
final floating = Floating();
Check if PiP is available
final canUsePiP = await floating.isPipAvailable;

PiP may be unavailable because of system settings managed by admin or device manufacturer. Also, the device may have Android version that was released without this feature.

Check if app is in PiP mode
final currentStatus = await floating.pipStatus;

Possible statuses:

Status Description Will enable() have an effect?
disabled PiP is available to use but currently disabled. Yes
enabled PiP is enabled. The app can display content but will not receive user inputs until the user decides to bring the app to it's full size. No
automatic PiP will be enabled automatically by the OS. Yes
unavailable PiP is disabled on given device. No
Enable PiP mode

Enable PiP right away:

final statusAfterEnabling = await floating.enable(ImmediatePiP());

Enable PiP when the app gets minimized via system gesture:

final statusAfterEnabling = await floating.enable(OnLeavePiP());

To later cancel, use .cancelOnLeavePiP().

When enabled, PiP mode can be toggled off by the user via system UI.

Arguments
aspectRatio:

The default 16/9 aspect ratio can be overridden with custom Rational. Eg. to make PiP square use: .enable(aspectRatio: Rational(1, 1)) or .enable(aspectRatio: Rational.square()).

sourceRectHint:

By default, system will simply use fade animation to tween between full app and PiP. Switching animation can be smoother by using source rect hint (example animation).

Check the example project to see an example of usage.

Categorias

Repositório-fonte

Projetos que usam este pacote