Files
bvandeusen 5d37616d52 feat(player): downscale + preload external cover art (8a)
AudioServiceConfig handed full-res album art to the notification /
lock screen / Wear. Add artDownscaleWidth/Height: 300 + preloadArtwork
so external surfaces get a smaller, faster, lower-memory cover with a
warm first paint.

6b (notification tap-to-open) dropped: androidNotificationClickStarts
Activity already defaults to true, so the tap foregrounds the app;
deep-linking to now-playing isn't a config knob and was judged
disproportionate.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-18 18:04:51 -04:00

31 lines
1.1 KiB
Dart

import 'package:audio_service/audio_service.dart';
import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'app.dart';
import 'player/audio_handler.dart';
import 'player/player_provider.dart';
Future<void> main() async {
WidgetsFlutterBinding.ensureInitialized();
final handler = await AudioService.init(
builder: () => MinstrelAudioHandler(),
config: const AudioServiceConfig(
androidNotificationChannelId: 'com.fabledsword.minstrel.audio',
androidNotificationChannelName: 'Minstrel playback',
androidNotificationOngoing: true,
// 8a: hand external surfaces (notification / lock screen / Wear)
// a downscaled cover instead of full-res album art — smaller
// payload, faster paint, lower memory. 300px is ample for those
// targets. preloadArtwork warms it so the first paint isn't blank.
artDownscaleWidth: 300,
artDownscaleHeight: 300,
preloadArtwork: true,
),
);
runApp(ProviderScope(
overrides: [audioHandlerProvider.overrideWithValue(handler)],
child: const MinstrelApp(),
));
}