audio_video_player 0.1.0-beta.6
audio_video_player: ^0.1.0-beta.6 copied to clipboard
A comprehensive Flutter plugin for audio and video playback with playlists, albums, background audio, PiP, downloads and more.
example/lib/main.dart
import 'package:audio_video_player/audio_video_player.dart';
import 'package:flutter/material.dart';
import 'screens/audio_demo_screen.dart';
import 'screens/playlist_demo_screen.dart';
import 'screens/video_demo_screen.dart';
import 'screens/mixed_list_demo_screen.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await AudioVideoPlayerPlugin.init(
androidNotificationChannelId: 'com.rameshwaramancha.example.channel',
androidNotificationChannelName: 'Example Audio',
);
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Audio & Video Player Demo',
theme: ThemeData(
colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
useMaterial3: true,
),
home: const HomeScreen(),
);
}
}
class HomeScreen extends StatelessWidget {
const HomeScreen({super.key});
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: const Text('audio_video_player demo')),
body: ListView(
children: [
ListTile(
leading: const Icon(Icons.music_note),
title: const Text('Single Audio Track'),
subtitle: const Text('AudioController – single item'),
trailing: const Icon(Icons.chevron_right),
onTap: () => Navigator.push(
context,
MaterialPageRoute(builder: (_) => const AudioDemoScreen()),
),
),
const Divider(),
ListTile(
leading: const Icon(Icons.queue_music),
title: const Text('Audio Playlist'),
subtitle: const Text('Playlist, shuffle, repeat, sleep timer'),
trailing: const Icon(Icons.chevron_right),
onTap: () => Navigator.push(
context,
MaterialPageRoute(builder: (_) => const PlaylistDemoScreen()),
),
),
const Divider(),
ListTile(
leading: const Icon(Icons.videocam),
title: const Text('Video Player'),
subtitle: const Text('Chewie UI, PiP, video playlist'),
trailing: const Icon(Icons.chevron_right),
onTap: () => Navigator.push(
context,
MaterialPageRoute(builder: (_) => const VideoDemoScreen()),
),
),
const Divider(),
ListTile(
leading: const Icon(Icons.list),
title: const Text('Mixed Audio/Video List'),
subtitle: const Text('Test seamless switching between players'),
trailing: const Icon(Icons.chevron_right),
onTap: () => Navigator.push(
context,
MaterialPageRoute(builder: (_) => const MixedListDemoScreen()),
),
),
],
),
);
}
}