✨ Updated player style
This commit is contained in:
@@ -1,3 +1,5 @@
|
|||||||
|
import 'dart:ui';
|
||||||
|
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter/services.dart';
|
import 'package:flutter/services.dart';
|
||||||
import 'package:drift/drift.dart' as drift;
|
import 'package:drift/drift.dart' as drift;
|
||||||
@@ -38,6 +40,37 @@ class PlayerScreen extends HookConsumerWidget {
|
|||||||
final path = Uri.decodeFull(Uri.parse(media.uri).path);
|
final path = Uri.decodeFull(Uri.parse(media.uri).path);
|
||||||
final metadataAsync = ref.watch(trackMetadataProvider(path));
|
final metadataAsync = ref.watch(trackMetadataProvider(path));
|
||||||
|
|
||||||
|
// Build blurred background if cover art is available
|
||||||
|
Widget? background;
|
||||||
|
metadataAsync.when(
|
||||||
|
data: (meta) {
|
||||||
|
if (meta.artBytes != null) {
|
||||||
|
background = Positioned.fill(
|
||||||
|
child: Stack(
|
||||||
|
children: [
|
||||||
|
Container(
|
||||||
|
decoration: BoxDecoration(
|
||||||
|
image: DecorationImage(
|
||||||
|
image: MemoryImage(meta.artBytes!),
|
||||||
|
fit: BoxFit.cover,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
BackdropFilter(
|
||||||
|
filter: ImageFilter.blur(sigmaX: 50, sigmaY: 50),
|
||||||
|
child: Container(color: Colors.black.withOpacity(0.6)),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
background = null;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
loading: () => background = null,
|
||||||
|
error: (_, __) => background = null,
|
||||||
|
);
|
||||||
|
|
||||||
return Focus(
|
return Focus(
|
||||||
autofocus: true,
|
autofocus: true,
|
||||||
onKeyEvent: (node, event) {
|
onKeyEvent: (node, event) {
|
||||||
@@ -62,6 +95,7 @@ class PlayerScreen extends HookConsumerWidget {
|
|||||||
child: Scaffold(
|
child: Scaffold(
|
||||||
body: Stack(
|
body: Stack(
|
||||||
children: [
|
children: [
|
||||||
|
...background != null ? [background!] : [],
|
||||||
// Main content (StreamBuilder)
|
// Main content (StreamBuilder)
|
||||||
Builder(
|
Builder(
|
||||||
builder: (context) {
|
builder: (context) {
|
||||||
|
|||||||
Reference in New Issue
Block a user