flutter_ass_player 0.1.0 copy "flutter_ass_player: ^0.1.0" to clipboard
flutter_ass_player: ^0.1.0 copied to clipboard

Cross-platform Flutter video player with native libass and JASSUB WebAssembly rendering.

example/lib/main.dart

import 'package:flutter/material.dart';
import 'package:flutter_ass_player/flutter_ass_player.dart';

void main() => runApp(const ExampleApp());

class ExampleApp extends StatelessWidget {
  const ExampleApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      theme: ThemeData(colorSchemeSeed: Colors.teal, useMaterial3: true),
      home: const PlayerExample(),
    );
  }
}

class PlayerExample extends StatefulWidget {
  const PlayerExample({super.key});

  @override
  State<PlayerExample> createState() => _PlayerExampleState();
}

class _PlayerExampleState extends State<PlayerExample> {
  final _controller = AssPlayerController();

  @override
  void dispose() {
    _controller.dispose();
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: const Text('ASS player')),
      body: Center(
        child: ConstrainedBox(
          constraints: const BoxConstraints(maxWidth: 960),
          child: AspectRatio(
            aspectRatio: 16 / 9,
            child: AssVideoPlayer(
              source:
                  'https://flutter.github.io/assets-for-api-docs/assets/videos/bee.mp4',
              assContent: _exampleAss,
              controller: _controller,
            ),
          ),
        ),
      ),
    );
  }
}

const _exampleAss = '''
[Script Info]
ScriptType: v4.00+
PlayResX: 1280
PlayResY: 720

[V4+ Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding
Style: Default,Arial,48,&H00FFFFFF,&H000000FF,&H00111111,&H80000000,0,0,0,0,100,100,0,0,1,3,1,2,40,40,40,1

[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:00:00.50,0:00:05.00,Default,,0,0,0,,Rendered with flutter_ass_player
''';
1
likes
160
points
29
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

Cross-platform Flutter video player with native libass and JASSUB WebAssembly rendering.

Repository (GitHub)
View/report issues

Topics

#video #subtitles #ass #libass #media-player

License

MIT (license)

Dependencies

flutter, media_kit, media_kit_libs_video, media_kit_video, web

More

Packages that depend on flutter_ass_player