mpv_audio_kit 0.0.1
mpv_audio_kit: ^0.0.1 copied to clipboard
Flutter audio player built on top of libmpv. Supports audio filters, pitch control, equalizer, and all mpv audio features. Targets macOS, Windows, Linux, iOS and Android.
example/lib/main.dart
import 'dart:io';
import 'dart:ui';
import 'package:flutter/material.dart';
import 'package:mpv_audio_kit/mpv_audio_kit.dart';
import 'package:window_manager/window_manager.dart';
import 'screens/player_page.dart';
import 'services/settings_service.dart';
late final SettingsService settingsService;
void main() async {
WidgetsFlutterBinding.ensureInitialized();
if (Platform.isWindows || Platform.isLinux || Platform.isMacOS) {
await windowManager.ensureInitialized();
WindowOptions windowOptions = const WindowOptions(
size: Size(450, 850),
minimumSize: Size(400, 600),
center: true,
backgroundColor: Colors.transparent,
skipTaskbar: false,
titleBarStyle: TitleBarStyle.normal,
);
await windowManager.waitUntilReadyToShow(windowOptions, () async {
await windowManager.show();
await windowManager.focus();
});
}
MpvAudioKit.ensureInitialized();
settingsService = await SettingsService.init();
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'mpv_audio_kit',
debugShowCheckedModeBanner: false,
scrollBehavior: const CustomScrollBehavior(),
theme: ThemeData(
colorScheme: ColorScheme.fromSeed(
seedColor: const Color(0xFF6366f1),
brightness: Brightness.light,
),
useMaterial3: true,
),
home: const ExcludeSemantics(child: PlayerPage()),
);
}
}
class CustomScrollBehavior extends MaterialScrollBehavior {
const CustomScrollBehavior();
@override
Set<PointerDeviceKind> get dragDevices => {
PointerDeviceKind.touch,
PointerDeviceKind.mouse,
PointerDeviceKind.trackpad,
};
}