File size: 4,586 Bytes
5acd9c3
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
import 'package:flutter/material.dart';
import 'package:fvp/mdk.dart';

void main(List<String> args) async {
  runApp(const SinglePlayerMultipleVideoWidget());
}
class SinglePlayerMultipleVideoWidget extends StatefulWidget {
  const SinglePlayerMultipleVideoWidget({Key? key}) : super(key: key);

  @override
  State<SinglePlayerMultipleVideoWidget> createState() =>
      _SinglePlayerMultipleVideoWidgetState();
}

class _SinglePlayerMultipleVideoWidgetState
    extends State<SinglePlayerMultipleVideoWidget> {
  late final player = Player();

  @override
  void initState() {
    super.initState();

    player.media = 'https://flutter.github.io/assets-for-api-docs/assets/videos/bee.mp4';
    player.loop = -1;
    player.state = PlaybackState.playing;
    player.updateTexture();
  }

  @override
  void dispose() {
    player.dispose();
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'package:fvp',
      home: Scaffold(
        body: Center(
          child: Row(
                crossAxisAlignment: CrossAxisAlignment.stretch,
                children: [
                  Expanded(
                    flex: 3,
                    child: Column(
                      mainAxisSize: MainAxisSize.min,
                      children: [
                        Expanded(
                          child: Card(
                            elevation: 8.0,
                            color: Colors.black,
                            clipBehavior: Clip.antiAlias,
                            margin: const EdgeInsets.all(32.0),
                            child: Column(
                              mainAxisSize: MainAxisSize.max,
                              children: [
                                Expanded(
                                  child: Row(
                                    children: [
                                      Expanded(
                                        child: ValueListenableBuilder<int?>(
                                          valueListenable: player.textureId,
                                          builder: (context, id, _) => id == null
                                            ? const SizedBox.shrink()
                                            : Texture(textureId: id),
                                        ),
                                      ),
                                      Expanded(
                                        child:  ValueListenableBuilder<int?>(
                                          valueListenable: player.textureId,
                                          builder: (context, id, _) => id == null
                                            ? const SizedBox.shrink()
                                            : Texture(textureId: id),
                                        ),
                                      ),
                                    ],
                                  ),
                                ),
                                Expanded(
                                  child: Row(
                                    children: [
                                      Expanded(
                                        child: ValueListenableBuilder<int?>(
                                          valueListenable: player.textureId,
                                          builder: (context, id, _) => id == null
                                            ? const SizedBox.shrink()
                                            : Texture(textureId: id),
                                        ),
                                      ),
                                      Expanded(
                                        child:  ValueListenableBuilder<int?>(
                                          valueListenable: player.textureId,
                                          builder: (context, id, _) => id == null
                                            ? const SizedBox.shrink()
                                            : Texture(textureId: id),
                                        ),
                                      ),
                                    ],
                                  ),
                                ),
                              ],
                            ),
                          ),
                        ),
                        const SizedBox(height: 32.0),
                      ],
                    ),
                  ),
                ],
              ),
        ),
      ),
    );
  }
}