Skip to content

Commit dc39def

Browse files
committed
Troubleshooting BetterPlayer reopening when trying to download other content during streaming playback
1 parent e4c41fc commit dc39def

File tree

2 files changed

+36
-32
lines changed

2 files changed

+36
-32
lines changed

player-samples/advanced/lib/features/advanced/presentation/pages/drm_content_page.dart

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,11 @@
11
import 'package:advanced/core/theme/colors_theme.dart';
22
import 'package:advanced/features/advanced/presentation/controllers/drm_movie_controller.dart';
3-
import 'package:better_player/better_player.dart';
4-
import 'package:dartz/dartz.dart';
53
import 'package:flutter/cupertino.dart';
64
import 'package:flutter/material.dart';
75
import 'package:flutter/services.dart';
86
import 'package:get/get.dart';
97

10-
import '../../domain/entities/download_status.dart';
11-
import '../../domain/entities/drm_movie.dart';
128
import 'views/movie_cell.dart';
13-
import 'dart:io' show Platform;
149

1510
class DrmContentPage extends GetView<DrmMovieController> {
1611
const DrmContentPage({Key? key}) : super(key: key);

player-samples/advanced/lib/features/advanced/presentation/pages/views/movie_cell.dart

Lines changed: 36 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ class MovieCell extends StatefulWidget {
2222

2323
class _MovieCellState extends State<MovieCell> {
2424
bool isPlayerVisible = false;
25+
BetterPlayer? betterPlayer;
2526

2627
@override
2728
Widget build(BuildContext context) {
@@ -32,32 +33,9 @@ class _MovieCellState extends State<MovieCell> {
3233
crossAxisAlignment: CrossAxisAlignment.stretch,
3334
children: [
3435
if (isPlayerVisible)
35-
createBetterPlayer()
36+
createBetterPlayer() ?? nonePlayer()
3637
else
37-
SizedBox(
38-
height: 80,
39-
child:
40-
GestureDetector(
41-
onTap: () {
42-
setState(() {
43-
isPlayerVisible = true;
44-
});
45-
},
46-
child: const Center(
47-
child: Row(
48-
mainAxisSize: MainAxisSize.min,
49-
children: [
50-
Icon(Icons.play_circle_fill, size: 45, color: Colors.white),
51-
SizedBox(width: 5),
52-
Text(
53-
"Streaming Play",
54-
style: TextStyle(fontSize: 10, color: Colors.white),
55-
),
56-
],
57-
),
58-
),
59-
),
60-
),
38+
nonePlayer(),
6139
const SizedBox(height: 16),
6240
Row(
6341
crossAxisAlignment: CrossAxisAlignment.start,
@@ -93,7 +71,37 @@ class _MovieCellState extends State<MovieCell> {
9371
);
9472
}
9573

96-
Widget createBetterPlayer() {
74+
Widget nonePlayer() {
75+
return SizedBox(
76+
height: 80,
77+
child: GestureDetector(
78+
onTap: () {
79+
setState(() {
80+
isPlayerVisible = true;
81+
});
82+
},
83+
child: const Center(
84+
child: Row(
85+
mainAxisSize: MainAxisSize.min,
86+
children: [
87+
Icon(Icons.play_circle_fill, size: 45, color: Colors.white),
88+
SizedBox(width: 5),
89+
Text(
90+
"Streaming Play",
91+
style: TextStyle(fontSize: 10, color: Colors.white),
92+
),
93+
],
94+
),
95+
),
96+
),
97+
);
98+
}
99+
100+
Widget? createBetterPlayer() {
101+
if (betterPlayer != null) {
102+
return betterPlayer;
103+
}
104+
97105
const betterPlayerConfiguration = BetterPlayerConfiguration(
98106
aspectRatio: 16 / 9,
99107
fit: BoxFit.contain,
@@ -121,7 +129,8 @@ class _MovieCellState extends State<MovieCell> {
121129
drmConfiguration: drmConfig);
122130

123131
betterPlayerController.setupDataSource(betterPlayerDataSource);
124-
return BetterPlayer(controller: betterPlayerController);
132+
betterPlayer = BetterPlayer(controller: betterPlayerController);
133+
return betterPlayer;
125134
}
126135

127136
String movieInformation() {

0 commit comments

Comments
 (0)