flet-video 0.2.0.dev76__py3-none-any.whl → 0.2.0.dev89__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of flet-video might be problematic. Click here for more details.
- flet_video/__init__.py +11 -2
- flet_video/types.py +14 -12
- flet_video/video.py +82 -106
- {flet_video-0.2.0.dev76.dist-info → flet_video-0.2.0.dev89.dist-info}/METADATA +6 -4
- {flet_video-0.2.0.dev76.dist-info → flet_video-0.2.0.dev89.dist-info}/RECORD +10 -10
- flutter/flet_video/pubspec.lock +52 -44
- flutter/flet_video/pubspec.yaml +1 -1
- {flet_video-0.2.0.dev76.dist-info → flet_video-0.2.0.dev89.dist-info}/WHEEL +0 -0
- {flet_video-0.2.0.dev76.dist-info → flet_video-0.2.0.dev89.dist-info}/licenses/LICENSE +0 -0
- {flet_video-0.2.0.dev76.dist-info → flet_video-0.2.0.dev89.dist-info}/top_level.txt +0 -0
flet_video/__init__.py
CHANGED
|
@@ -1,8 +1,17 @@
|
|
|
1
|
-
from .types import (
|
|
1
|
+
from flet_video.types import (
|
|
2
2
|
PlaylistMode,
|
|
3
3
|
VideoConfiguration,
|
|
4
4
|
VideoMedia,
|
|
5
5
|
VideoSubtitleConfiguration,
|
|
6
6
|
VideoSubtitleTrack,
|
|
7
7
|
)
|
|
8
|
-
from .video import Video
|
|
8
|
+
from flet_video.video import Video
|
|
9
|
+
|
|
10
|
+
__all__ = [
|
|
11
|
+
"PlaylistMode",
|
|
12
|
+
"Video",
|
|
13
|
+
"VideoConfiguration",
|
|
14
|
+
"VideoMedia",
|
|
15
|
+
"VideoSubtitleConfiguration",
|
|
16
|
+
"VideoSubtitleTrack",
|
|
17
|
+
]
|
flet_video/types.py
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
from dataclasses import dataclass, field
|
|
2
2
|
from enum import Enum
|
|
3
|
-
from typing import
|
|
3
|
+
from typing import Optional
|
|
4
4
|
|
|
5
5
|
import flet as ft
|
|
6
6
|
|
|
7
7
|
__all__ = [
|
|
8
8
|
"PlaylistMode",
|
|
9
|
-
"VideoMedia",
|
|
10
9
|
"VideoConfiguration",
|
|
10
|
+
"VideoMedia",
|
|
11
11
|
"VideoSubtitleConfiguration",
|
|
12
12
|
"VideoSubtitleTrack",
|
|
13
13
|
]
|
|
@@ -33,10 +33,10 @@ class VideoMedia:
|
|
|
33
33
|
resource: str
|
|
34
34
|
"""URI of the media resource."""
|
|
35
35
|
|
|
36
|
-
http_headers: Optional[
|
|
36
|
+
http_headers: Optional[dict[str, str]] = None
|
|
37
37
|
"""HTTP headers to be used for the media resource."""
|
|
38
38
|
|
|
39
|
-
extras: Optional[
|
|
39
|
+
extras: Optional[dict[str, str]] = None
|
|
40
40
|
"""Additional metadata for the media resource."""
|
|
41
41
|
|
|
42
42
|
|
|
@@ -46,8 +46,9 @@ class VideoConfiguration:
|
|
|
46
46
|
|
|
47
47
|
output_driver: Optional[str] = None
|
|
48
48
|
"""
|
|
49
|
-
Sets the [--vo](https://mpv.io/manual/stable/#options-vo) property
|
|
50
|
-
|
|
49
|
+
Sets the [--vo](https://mpv.io/manual/stable/#options-vo) property
|
|
50
|
+
on native backend.
|
|
51
|
+
|
|
51
52
|
The default value is platform dependent:
|
|
52
53
|
- Windows, GNU/Linux, macOS & iOS : `"libmpv"`
|
|
53
54
|
- Android: `"gpu"`
|
|
@@ -55,8 +56,9 @@ class VideoConfiguration:
|
|
|
55
56
|
|
|
56
57
|
hardware_decoding_api: Optional[str] = None
|
|
57
58
|
"""
|
|
58
|
-
Sets the [--hwdec](https://mpv.io/manual/stable/#options-hwdec)
|
|
59
|
-
|
|
59
|
+
Sets the [--hwdec](https://mpv.io/manual/stable/#options-hwdec)
|
|
60
|
+
property on native backend.
|
|
61
|
+
|
|
60
62
|
The default value is platform dependent:
|
|
61
63
|
- Windows, GNU/Linux, macOS & iOS : `"auto"`
|
|
62
64
|
- Android: `"auto-safe"`
|
|
@@ -80,8 +82,8 @@ class VideoConfiguration:
|
|
|
80
82
|
|
|
81
83
|
scale: ft.Number = 1.0
|
|
82
84
|
"""
|
|
83
|
-
The scale for the video output.
|
|
84
|
-
Specifying this option will cause `width` & `height` to be ignored.
|
|
85
|
+
The scale for the video output.
|
|
86
|
+
Specifying this option will cause [`width`][..] & [`height`][..] to be ignored.
|
|
85
87
|
"""
|
|
86
88
|
|
|
87
89
|
|
|
@@ -91,8 +93,8 @@ class VideoSubtitleTrack:
|
|
|
91
93
|
|
|
92
94
|
src: str
|
|
93
95
|
"""
|
|
94
|
-
The subtitle source.
|
|
95
|
-
|
|
96
|
+
The subtitle source.
|
|
97
|
+
|
|
96
98
|
Supported values:
|
|
97
99
|
- A URL (e.g. "https://example.com/subs.srt" or "www.example.com/sub.vtt")
|
|
98
100
|
- An absolute local file path (not supported on the web platform)
|
flet_video/video.py
CHANGED
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import asyncio
|
|
2
1
|
from dataclasses import field
|
|
3
2
|
from typing import Optional
|
|
4
3
|
|
|
5
4
|
import flet as ft
|
|
6
5
|
|
|
7
|
-
from .types import (
|
|
6
|
+
from flet_video.types import (
|
|
8
7
|
PlaylistMode,
|
|
9
8
|
VideoConfiguration,
|
|
10
9
|
VideoMedia,
|
|
@@ -21,7 +20,8 @@ class Video(ft.ConstrainedControl):
|
|
|
21
20
|
A control that displays a video from a playlist.
|
|
22
21
|
|
|
23
22
|
Raises:
|
|
24
|
-
AssertionError: If the [`volume`][(c).] is not between
|
|
23
|
+
AssertionError: If the [`volume`][(c).] is not between
|
|
24
|
+
`0.0` and `100.0` (inclusive).
|
|
25
25
|
"""
|
|
26
26
|
|
|
27
27
|
playlist: list[VideoMedia] = field(default_factory=list)
|
|
@@ -31,7 +31,7 @@ class Video(ft.ConstrainedControl):
|
|
|
31
31
|
|
|
32
32
|
title: str = "flet-video"
|
|
33
33
|
"""
|
|
34
|
-
Defines the name of the underlying window & process for native backend.
|
|
34
|
+
Defines the name of the underlying window & process for native backend.
|
|
35
35
|
This is visible inside the windows' volume mixer.
|
|
36
36
|
"""
|
|
37
37
|
|
|
@@ -47,8 +47,9 @@ class Video(ft.ConstrainedControl):
|
|
|
47
47
|
|
|
48
48
|
wakelock: bool = True
|
|
49
49
|
"""
|
|
50
|
-
Whether to acquire wake lock while playing the video.
|
|
51
|
-
When `True`, device's display will not go to standby/sleep while
|
|
50
|
+
Whether to acquire wake lock while playing the video.
|
|
51
|
+
When `True`, device's display will not go to standby/sleep while
|
|
52
|
+
the video is playing.
|
|
52
53
|
"""
|
|
53
54
|
|
|
54
55
|
autoplay: bool = False
|
|
@@ -79,9 +80,10 @@ class Video(ft.ConstrainedControl):
|
|
|
79
80
|
volume: ft.Number = 100.0
|
|
80
81
|
"""
|
|
81
82
|
Defines the volume of the video player.
|
|
82
|
-
|
|
83
|
+
|
|
83
84
|
Note:
|
|
84
|
-
It's value ranges between `0.0` to `100.0` (inclusive), where `0.0`
|
|
85
|
+
It's value ranges between `0.0` to `100.0` (inclusive), where `0.0`
|
|
86
|
+
is muted and `100.0` is the maximum volume.
|
|
85
87
|
An exception will be raised if the value is outside this range.
|
|
86
88
|
"""
|
|
87
89
|
|
|
@@ -90,7 +92,7 @@ class Video(ft.ConstrainedControl):
|
|
|
90
92
|
Defines the playback rate of the video player.
|
|
91
93
|
"""
|
|
92
94
|
|
|
93
|
-
alignment: ft.Alignment = field(default_factory=lambda: ft.Alignment.
|
|
95
|
+
alignment: ft.Alignment = field(default_factory=lambda: ft.Alignment.CENTER)
|
|
94
96
|
"""
|
|
95
97
|
Defines the Alignment of the viewport.
|
|
96
98
|
"""
|
|
@@ -98,10 +100,12 @@ class Video(ft.ConstrainedControl):
|
|
|
98
100
|
filter_quality: ft.FilterQuality = ft.FilterQuality.LOW
|
|
99
101
|
"""
|
|
100
102
|
Filter quality of the texture used to render the video output.
|
|
101
|
-
|
|
102
|
-
Note:
|
|
103
|
-
Android was reported to show blurry images when using
|
|
104
|
-
|
|
103
|
+
|
|
104
|
+
Note:
|
|
105
|
+
Android was reported to show blurry images when using
|
|
106
|
+
[`FilterQuality.HIGH`][flet.FilterQuality.HIGH].
|
|
107
|
+
Prefer the usage of [`FilterQuality.MEDIUM`][flet.FilterQuality.MEDIUM]
|
|
108
|
+
on this platform.
|
|
105
109
|
"""
|
|
106
110
|
|
|
107
111
|
pause_upon_entering_background_mode: bool = True
|
|
@@ -111,8 +115,9 @@ class Video(ft.ConstrainedControl):
|
|
|
111
115
|
|
|
112
116
|
resume_upon_entering_foreground_mode: bool = False
|
|
113
117
|
"""
|
|
114
|
-
Whether to resume the video when application enters foreground mode.
|
|
115
|
-
Has effect only if `pause_upon_entering_background_mode` is also set to
|
|
118
|
+
Whether to resume the video when application enters foreground mode.
|
|
119
|
+
Has effect only if [`pause_upon_entering_background_mode`][..] is also set to
|
|
120
|
+
`True`.
|
|
116
121
|
"""
|
|
117
122
|
|
|
118
123
|
pitch: ft.Number = 1.0
|
|
@@ -139,163 +144,134 @@ class Video(ft.ConstrainedControl):
|
|
|
139
144
|
Defines the subtitle track for the video player.
|
|
140
145
|
"""
|
|
141
146
|
|
|
142
|
-
on_load: ft.
|
|
147
|
+
on_load: Optional[ft.ControlEventHandler["Video"]] = None
|
|
143
148
|
"""Fires when the video player is initialized and ready for playback."""
|
|
144
149
|
|
|
145
|
-
on_enter_fullscreen: ft.
|
|
150
|
+
on_enter_fullscreen: Optional[ft.ControlEventHandler["Video"]] = None
|
|
146
151
|
"""Fires when the video player enters fullscreen."""
|
|
147
152
|
|
|
148
|
-
on_exit_fullscreen: ft.
|
|
153
|
+
on_exit_fullscreen: Optional[ft.ControlEventHandler["Video"]] = None
|
|
149
154
|
"""Fires when the video player exits fullscreen"""
|
|
150
155
|
|
|
151
|
-
on_error: ft.
|
|
156
|
+
on_error: Optional[ft.ControlEventHandler["Video"]] = None
|
|
152
157
|
"""
|
|
153
158
|
Fires when an error occurs.
|
|
154
|
-
|
|
155
|
-
Event handler argument's `data` property contains
|
|
159
|
+
|
|
160
|
+
Event handler argument's [`data`][flet.Event.data] property contains
|
|
161
|
+
information about the error.
|
|
156
162
|
"""
|
|
157
163
|
|
|
158
|
-
on_complete: ft.
|
|
164
|
+
on_complete: Optional[ft.ControlEventHandler["Video"]] = None
|
|
159
165
|
"""Fires when a video player completes."""
|
|
160
166
|
|
|
161
|
-
on_track_change: ft.
|
|
167
|
+
on_track_change: Optional[ft.ControlEventHandler["Video"]] = None
|
|
162
168
|
"""
|
|
163
169
|
Fires when a video track changes.
|
|
164
|
-
|
|
165
|
-
Event handler argument's `data` property contains
|
|
170
|
+
|
|
171
|
+
Event handler argument's [`data`][flet.Event.data] property contains
|
|
172
|
+
the index of the new track.
|
|
166
173
|
"""
|
|
167
174
|
|
|
168
175
|
def before_update(self):
|
|
169
176
|
super().before_update()
|
|
170
|
-
assert 0 <= self.volume <= 100,
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
"""Starts playing the video."""
|
|
174
|
-
asyncio.create_task(self.play_async())
|
|
177
|
+
assert 0 <= self.volume <= 100, (
|
|
178
|
+
f"volume must be between 0 and 100 inclusive, got {self.volume}"
|
|
179
|
+
)
|
|
175
180
|
|
|
176
|
-
def
|
|
181
|
+
async def play(self):
|
|
177
182
|
"""Starts playing the video."""
|
|
178
|
-
|
|
183
|
+
await self._invoke_method("play")
|
|
179
184
|
|
|
180
|
-
def pause(self):
|
|
185
|
+
async def pause(self):
|
|
181
186
|
"""Pauses the video player."""
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
def pause_async(self):
|
|
185
|
-
"""Pauses the video player."""
|
|
186
|
-
return self._invoke_method_async("pause")
|
|
187
|
-
|
|
188
|
-
def play_or_pause(self):
|
|
189
|
-
"""
|
|
190
|
-
Cycles between play and pause states of the video player,
|
|
191
|
-
i.e., plays if paused and pauses if playing.
|
|
192
|
-
"""
|
|
193
|
-
asyncio.create_task(self.play_or_pause_async())
|
|
187
|
+
await self._invoke_method("pause")
|
|
194
188
|
|
|
195
|
-
def
|
|
189
|
+
async def play_or_pause(self):
|
|
196
190
|
"""
|
|
197
191
|
Cycles between play and pause states of the video player,
|
|
198
192
|
i.e., plays if paused and pauses if playing.
|
|
199
193
|
"""
|
|
200
|
-
|
|
194
|
+
await self._invoke_method("play_or_pause")
|
|
201
195
|
|
|
202
|
-
def stop(self):
|
|
196
|
+
async def stop(self):
|
|
203
197
|
"""Stops the video player."""
|
|
204
|
-
|
|
198
|
+
await self._invoke_method("stop")
|
|
205
199
|
|
|
206
|
-
def
|
|
207
|
-
"""
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
def next(self):
|
|
211
|
-
"""Jumps to the next `VideoMedia` in the `playlist`."""
|
|
212
|
-
asyncio.create_task(self.next_async())
|
|
213
|
-
|
|
214
|
-
def next_async(self):
|
|
215
|
-
"""Jumps to the next `VideoMedia` in the `playlist`."""
|
|
216
|
-
return self._invoke_method_async("next")
|
|
217
|
-
|
|
218
|
-
def previous(self):
|
|
219
|
-
"""Jumps to the previous `VideoMedia` in the `playlist`."""
|
|
220
|
-
asyncio.create_task(self.previous_async())
|
|
221
|
-
|
|
222
|
-
def previous_async(self):
|
|
223
|
-
"""Jumps to the previous `VideoMedia` in the `playlist`."""
|
|
224
|
-
return self._invoke_method_async("previous")
|
|
225
|
-
|
|
226
|
-
def seek(self, position: ft.DurationValue):
|
|
227
|
-
"""
|
|
228
|
-
Seeks the currently playing `VideoMedia` from the `playlist` at the specified `position`.
|
|
229
|
-
"""
|
|
230
|
-
asyncio.create_task(self.seek_async(position))
|
|
200
|
+
async def next(self):
|
|
201
|
+
"""Jumps to the next `VideoMedia` in the [`playlist`][..]."""
|
|
202
|
+
await self._invoke_method("next")
|
|
231
203
|
|
|
232
|
-
def
|
|
233
|
-
"""
|
|
234
|
-
|
|
235
|
-
"""
|
|
236
|
-
return self._invoke_method_async("seek", {"position": position})
|
|
204
|
+
async def previous(self):
|
|
205
|
+
"""Jumps to the previous `VideoMedia` in the [`playlist`][..]."""
|
|
206
|
+
await self._invoke_method("previous")
|
|
237
207
|
|
|
238
|
-
def
|
|
208
|
+
async def seek(self, position: ft.DurationValue):
|
|
239
209
|
"""
|
|
240
|
-
|
|
210
|
+
Seeks the currently playing `VideoMedia` from the
|
|
211
|
+
[`playlist`][..] at the specified `position`.
|
|
241
212
|
"""
|
|
242
|
-
|
|
213
|
+
await self._invoke_method(
|
|
214
|
+
"seek",
|
|
215
|
+
{"position": position},
|
|
216
|
+
)
|
|
243
217
|
|
|
244
|
-
async def
|
|
218
|
+
async def jump_to(self, media_index: int):
|
|
245
219
|
"""
|
|
246
|
-
Jumps to the `VideoMedia` at the specified `media_index`
|
|
220
|
+
Jumps to the `VideoMedia` at the specified `media_index`
|
|
221
|
+
in the [`playlist`][..].
|
|
247
222
|
"""
|
|
248
223
|
assert self.playlist[media_index], "media_index is out of range"
|
|
249
224
|
if media_index < 0:
|
|
250
225
|
# dart doesn't support negative indexes
|
|
251
226
|
media_index = len(self.playlist) + media_index
|
|
252
|
-
await self.
|
|
227
|
+
await self._invoke_method(
|
|
228
|
+
method_name="jump_to",
|
|
229
|
+
arguments={"media_index": media_index},
|
|
230
|
+
)
|
|
253
231
|
|
|
254
|
-
def playlist_add(self, media: VideoMedia):
|
|
255
|
-
"""Appends/Adds the provided `media` to the `playlist`."""
|
|
256
|
-
asyncio.create_task(self.playlist_add_async(media))
|
|
257
|
-
|
|
258
|
-
async def playlist_add_async(self, media: VideoMedia):
|
|
232
|
+
async def playlist_add(self, media: VideoMedia):
|
|
259
233
|
"""Appends/Adds the provided `media` to the `playlist`."""
|
|
260
234
|
assert media.resource, "media has no resource"
|
|
261
|
-
await self.
|
|
235
|
+
await self._invoke_method(
|
|
236
|
+
method_name="playlist_add",
|
|
237
|
+
arguments={"media": media},
|
|
238
|
+
)
|
|
262
239
|
self.playlist.append(media)
|
|
263
240
|
|
|
264
|
-
def playlist_remove(self, media_index: int):
|
|
265
|
-
"""Removes the provided `media` from the `playlist`."""
|
|
266
|
-
asyncio.create_task(self.playlist_remove_async(media_index))
|
|
267
|
-
|
|
268
|
-
async def playlist_remove_async(self, media_index: int):
|
|
241
|
+
async def playlist_remove(self, media_index: int):
|
|
269
242
|
"""Removes the provided `media` from the `playlist`."""
|
|
270
243
|
assert self.playlist[media_index], "index out of range"
|
|
271
|
-
await self.
|
|
244
|
+
await self._invoke_method(
|
|
245
|
+
method_name="playlist_remove",
|
|
246
|
+
arguments={"media_index": media_index},
|
|
247
|
+
)
|
|
272
248
|
self.playlist.pop(media_index)
|
|
273
249
|
|
|
274
|
-
async def
|
|
250
|
+
async def is_playing(self) -> bool:
|
|
275
251
|
"""
|
|
276
252
|
Returns:
|
|
277
253
|
`True` if the video player is currently playing, `False` otherwise.
|
|
278
254
|
"""
|
|
279
|
-
return await self.
|
|
255
|
+
return await self._invoke_method("is_playing")
|
|
280
256
|
|
|
281
|
-
async def
|
|
257
|
+
async def is_completed(self) -> bool:
|
|
282
258
|
"""
|
|
283
259
|
Returns:
|
|
284
260
|
`True` if video player has reached the end of
|
|
285
|
-
|
|
261
|
+
the currently playing media, `False` otherwise.
|
|
286
262
|
"""
|
|
287
|
-
return await self.
|
|
263
|
+
return await self._invoke_method("is_completed")
|
|
288
264
|
|
|
289
|
-
async def
|
|
265
|
+
async def get_duration(self) -> ft.Duration:
|
|
290
266
|
"""
|
|
291
267
|
Returns:
|
|
292
268
|
The duration of the currently playing media.
|
|
293
269
|
"""
|
|
294
|
-
return await self.
|
|
270
|
+
return await self._invoke_method("get_duration")
|
|
295
271
|
|
|
296
|
-
async def
|
|
272
|
+
async def get_current_position(self) -> ft.Duration:
|
|
297
273
|
"""
|
|
298
274
|
Returns:
|
|
299
275
|
The current position of the currently playing media.
|
|
300
276
|
"""
|
|
301
|
-
return await self.
|
|
277
|
+
return await self._invoke_method("get_current_position")
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: flet-video
|
|
3
|
-
Version: 0.2.0.
|
|
3
|
+
Version: 0.2.0.dev89
|
|
4
4
|
Summary: A cross-platform video player for Flet apps.
|
|
5
5
|
Author-email: Flet contributors <hello@flet.dev>
|
|
6
6
|
License-Expression: Apache-2.0
|
|
@@ -41,7 +41,9 @@ This package supports the following platforms:
|
|
|
41
41
|
| Android | ✅ |
|
|
42
42
|
| Web | ✅ |
|
|
43
43
|
|
|
44
|
-
##
|
|
44
|
+
## Usage
|
|
45
|
+
|
|
46
|
+
### Installation
|
|
45
47
|
|
|
46
48
|
To install the `flet-video` package and add it to your project dependencies:
|
|
47
49
|
|
|
@@ -61,6 +63,6 @@ To install the `flet-video` package and add it to your project dependencies:
|
|
|
61
63
|
poetry add flet-video
|
|
62
64
|
```
|
|
63
65
|
|
|
64
|
-
|
|
66
|
+
### Examples
|
|
65
67
|
|
|
66
|
-
For examples, see [
|
|
68
|
+
For examples, see [these](./examples).
|
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
flet_video/__init__.py,sha256=
|
|
2
|
-
flet_video/types.py,sha256=
|
|
3
|
-
flet_video/video.py,sha256=
|
|
4
|
-
flet_video-0.2.0.
|
|
1
|
+
flet_video/__init__.py,sha256=jaNQsiSt765db8odKBLiMLRrgk-YNuSK8eznMk2_1eA,334
|
|
2
|
+
flet_video/types.py,sha256=QO80nyg2DMSxWNxLxTpT256vB1uZQ5dELCnsc9XEYSg,4527
|
|
3
|
+
flet_video/video.py,sha256=cvwNiI7nbqHmu_zsl3IW5Zm_nU_j2yUy2gH5fJB6Wc0,8099
|
|
4
|
+
flet_video-0.2.0.dev89.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
|
5
5
|
flutter/flet_video/CHANGELOG.md,sha256=FJ0SxmqH1T_rUMLagUr_PqoHRQBloR4octPNKKz4TJ8,54
|
|
6
6
|
flutter/flet_video/LICENSE,sha256=QwcOLU5TJoTeUhuIXzhdCEEDDvorGiC6-3YTOl4TecE,11356
|
|
7
7
|
flutter/flet_video/README.md,sha256=BNJ7_bUq43JAu1VTnjdOnUaV-vDjKDc_QbUvGYbnfbQ,60
|
|
8
8
|
flutter/flet_video/analysis_options.yaml,sha256=32kjGAc-zF87inWaH5M46yGZWQDTwrwfvNLHeAocfG4,154
|
|
9
|
-
flutter/flet_video/pubspec.lock,sha256=
|
|
10
|
-
flutter/flet_video/pubspec.yaml,sha256=
|
|
9
|
+
flutter/flet_video/pubspec.lock,sha256=NonFBvRLK7IFcqMKjgOH00qlu4Pea3WlI5-x2IEKBoc,29411
|
|
10
|
+
flutter/flet_video/pubspec.yaml,sha256=EHyKLQbpBFu40CaWcFdEnl10OJ0aZ_cfOeZffP6P-mA,564
|
|
11
11
|
flutter/flet_video/lib/flet_video.dart,sha256=x-KG1v-Qb_AiSyH9Y2Jt9PIYPxl_mQjXeIg_BDEQ0iQ,65
|
|
12
12
|
flutter/flet_video/lib/src/extension.dart,sha256=8a6XcgY0KD4HQVkSVx0_6O8WcCqUeVub0_ihq4WW7S4,477
|
|
13
13
|
flutter/flet_video/lib/src/video.dart,sha256=Wlh61Rldan9hPmSxOcOVNPUoN7b8ii5ouv3QaavXeRk,7770
|
|
14
14
|
flutter/flet_video/lib/src/utils/file_utils_io.dart,sha256=7AgfFYmc2hWT3Hqra29zyl4H0y43L5ZnqvFoGuMPCpM,276
|
|
15
15
|
flutter/flet_video/lib/src/utils/file_utils_web.dart,sha256=TeGP-wSeoe39G_EJO2JFhgw6lJXmDXBNW0i-YUgxlaw,138
|
|
16
16
|
flutter/flet_video/lib/src/utils/video.dart,sha256=ictwd-7_8i7KmwGftHAhFFF_w2Y8vuXeeY4-bkfEhEk,4258
|
|
17
|
-
flet_video-0.2.0.
|
|
18
|
-
flet_video-0.2.0.
|
|
19
|
-
flet_video-0.2.0.
|
|
20
|
-
flet_video-0.2.0.
|
|
17
|
+
flet_video-0.2.0.dev89.dist-info/METADATA,sha256=WLpudtAGMEDTH0EPIxqpzu_orBh5kN726lF5ZSDBuPI,1924
|
|
18
|
+
flet_video-0.2.0.dev89.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
19
|
+
flet_video-0.2.0.dev89.dist-info/top_level.txt,sha256=7omjcyZHBn3gldah0wrmAlkR9Vc1vmtSlhUVZcPg2o0,19
|
|
20
|
+
flet_video-0.2.0.dev89.dist-info/RECORD,,
|
flutter/flet_video/pubspec.lock
CHANGED
|
@@ -21,10 +21,10 @@ packages:
|
|
|
21
21
|
dependency: transitive
|
|
22
22
|
description:
|
|
23
23
|
name: async
|
|
24
|
-
sha256:
|
|
24
|
+
sha256: "758e6d74e971c3e5aceb4110bfd6698efc7f501675bcfe0c775459a8140750eb"
|
|
25
25
|
url: "https://pub.dev"
|
|
26
26
|
source: hosted
|
|
27
|
-
version: "2.
|
|
27
|
+
version: "2.13.0"
|
|
28
28
|
boolean_selector:
|
|
29
29
|
dependency: transitive
|
|
30
30
|
description:
|
|
@@ -109,10 +109,10 @@ packages:
|
|
|
109
109
|
dependency: transitive
|
|
110
110
|
description:
|
|
111
111
|
name: fake_async
|
|
112
|
-
sha256: "
|
|
112
|
+
sha256: "5368f224a74523e8d2e7399ea1638b37aecfca824a3cc4dfdf77bf1fa905ac44"
|
|
113
113
|
url: "https://pub.dev"
|
|
114
114
|
source: hosted
|
|
115
|
-
version: "1.3.
|
|
115
|
+
version: "1.3.3"
|
|
116
116
|
ffi:
|
|
117
117
|
dependency: transitive
|
|
118
118
|
description:
|
|
@@ -133,10 +133,10 @@ packages:
|
|
|
133
133
|
dependency: transitive
|
|
134
134
|
description:
|
|
135
135
|
name: file_picker
|
|
136
|
-
sha256:
|
|
136
|
+
sha256: ef7d2a085c1b1d69d17b6842d0734aad90156de08df6bd3c12496d0bd6ddf8e2
|
|
137
137
|
url: "https://pub.dev"
|
|
138
138
|
source: hosted
|
|
139
|
-
version: "10.
|
|
139
|
+
version: "10.3.1"
|
|
140
140
|
fixnum:
|
|
141
141
|
dependency: transitive
|
|
142
142
|
description:
|
|
@@ -150,7 +150,7 @@ packages:
|
|
|
150
150
|
description:
|
|
151
151
|
path: "packages/flet"
|
|
152
152
|
ref: main
|
|
153
|
-
resolved-ref:
|
|
153
|
+
resolved-ref: "4ea9558543657d31dba3b11d6017beed2e16d447"
|
|
154
154
|
url: "https://github.com/flet-dev/flet.git"
|
|
155
155
|
source: git
|
|
156
156
|
version: "0.70.0"
|
|
@@ -171,10 +171,10 @@ packages:
|
|
|
171
171
|
dependency: "direct dev"
|
|
172
172
|
description:
|
|
173
173
|
name: flutter_lints
|
|
174
|
-
sha256:
|
|
174
|
+
sha256: "9e8c3858111da373efc5aa341de011d9bd23e2c5c5e0c62bccf32438e192d7b1"
|
|
175
175
|
url: "https://pub.dev"
|
|
176
176
|
source: hosted
|
|
177
|
-
version: "
|
|
177
|
+
version: "3.0.2"
|
|
178
178
|
flutter_localizations:
|
|
179
179
|
dependency: transitive
|
|
180
180
|
description: flutter
|
|
@@ -192,10 +192,10 @@ packages:
|
|
|
192
192
|
dependency: transitive
|
|
193
193
|
description:
|
|
194
194
|
name: flutter_plugin_android_lifecycle
|
|
195
|
-
sha256:
|
|
195
|
+
sha256: "6382ce712ff69b0f719640ce957559dde459e55ecd433c767e06d139ddf16cab"
|
|
196
196
|
url: "https://pub.dev"
|
|
197
197
|
source: hosted
|
|
198
|
-
version: "2.0.
|
|
198
|
+
version: "2.0.29"
|
|
199
199
|
flutter_svg:
|
|
200
200
|
dependency: transitive
|
|
201
201
|
description:
|
|
@@ -250,10 +250,10 @@ packages:
|
|
|
250
250
|
dependency: transitive
|
|
251
251
|
description:
|
|
252
252
|
name: intl
|
|
253
|
-
sha256:
|
|
253
|
+
sha256: "3df61194eb431efc39c4ceba583b95633a403f46c9fd341e550ce0bfa50e9aa5"
|
|
254
254
|
url: "https://pub.dev"
|
|
255
255
|
source: hosted
|
|
256
|
-
version: "0.
|
|
256
|
+
version: "0.20.2"
|
|
257
257
|
json_annotation:
|
|
258
258
|
dependency: transitive
|
|
259
259
|
description:
|
|
@@ -266,10 +266,10 @@ packages:
|
|
|
266
266
|
dependency: transitive
|
|
267
267
|
description:
|
|
268
268
|
name: leak_tracker
|
|
269
|
-
sha256:
|
|
269
|
+
sha256: "6bb818ecbdffe216e81182c2f0714a2e62b593f4a4f13098713ff1685dfb6ab0"
|
|
270
270
|
url: "https://pub.dev"
|
|
271
271
|
source: hosted
|
|
272
|
-
version: "10.0.
|
|
272
|
+
version: "10.0.9"
|
|
273
273
|
leak_tracker_flutter_testing:
|
|
274
274
|
dependency: transitive
|
|
275
275
|
description:
|
|
@@ -290,10 +290,10 @@ packages:
|
|
|
290
290
|
dependency: transitive
|
|
291
291
|
description:
|
|
292
292
|
name: lints
|
|
293
|
-
sha256:
|
|
293
|
+
sha256: cbf8d4b858bb0134ef3ef87841abdf8d63bfc255c266b7bf6b39daa1085c4290
|
|
294
294
|
url: "https://pub.dev"
|
|
295
295
|
source: hosted
|
|
296
|
-
version: "
|
|
296
|
+
version: "3.0.0"
|
|
297
297
|
logging:
|
|
298
298
|
dependency: transitive
|
|
299
299
|
description:
|
|
@@ -418,18 +418,18 @@ packages:
|
|
|
418
418
|
dependency: transitive
|
|
419
419
|
description:
|
|
420
420
|
name: package_info_plus
|
|
421
|
-
sha256: "
|
|
421
|
+
sha256: "16eee997588c60225bda0488b6dcfac69280a6b7a3cf02c741895dd370a02968"
|
|
422
422
|
url: "https://pub.dev"
|
|
423
423
|
source: hosted
|
|
424
|
-
version: "8.3.
|
|
424
|
+
version: "8.3.1"
|
|
425
425
|
package_info_plus_platform_interface:
|
|
426
426
|
dependency: transitive
|
|
427
427
|
description:
|
|
428
428
|
name: package_info_plus_platform_interface
|
|
429
|
-
sha256: "
|
|
429
|
+
sha256: "202a487f08836a592a6bd4f901ac69b3a8f146af552bbd14407b6b41e1c3f086"
|
|
430
430
|
url: "https://pub.dev"
|
|
431
431
|
source: hosted
|
|
432
|
-
version: "3.2.
|
|
432
|
+
version: "3.2.1"
|
|
433
433
|
path:
|
|
434
434
|
dependency: transitive
|
|
435
435
|
description:
|
|
@@ -466,10 +466,10 @@ packages:
|
|
|
466
466
|
dependency: transitive
|
|
467
467
|
description:
|
|
468
468
|
name: path_provider_foundation
|
|
469
|
-
sha256: "
|
|
469
|
+
sha256: "16eef174aacb07e09c351502740fa6254c165757638eba1e9116b0a781201bbd"
|
|
470
470
|
url: "https://pub.dev"
|
|
471
471
|
source: hosted
|
|
472
|
-
version: "2.4.
|
|
472
|
+
version: "2.4.2"
|
|
473
473
|
path_provider_linux:
|
|
474
474
|
dependency: transitive
|
|
475
475
|
description:
|
|
@@ -598,14 +598,22 @@ packages:
|
|
|
598
598
|
url: "https://pub.dev"
|
|
599
599
|
source: hosted
|
|
600
600
|
version: "0.2.0"
|
|
601
|
+
screenshot:
|
|
602
|
+
dependency: transitive
|
|
603
|
+
description:
|
|
604
|
+
name: screenshot
|
|
605
|
+
sha256: "63817697a7835e6ce82add4228e15d233b74d42975c143ad8cfe07009fab866b"
|
|
606
|
+
url: "https://pub.dev"
|
|
607
|
+
source: hosted
|
|
608
|
+
version: "3.0.0"
|
|
601
609
|
sensors_plus:
|
|
602
610
|
dependency: transitive
|
|
603
611
|
description:
|
|
604
612
|
name: sensors_plus
|
|
605
|
-
sha256: "
|
|
613
|
+
sha256: "89e2bfc3d883743539ce5774a2b93df61effde40ff958ecad78cd66b1a8b8d52"
|
|
606
614
|
url: "https://pub.dev"
|
|
607
615
|
source: hosted
|
|
608
|
-
version: "6.1.
|
|
616
|
+
version: "6.1.2"
|
|
609
617
|
sensors_plus_platform_interface:
|
|
610
618
|
dependency: transitive
|
|
611
619
|
description:
|
|
@@ -626,10 +634,10 @@ packages:
|
|
|
626
634
|
dependency: transitive
|
|
627
635
|
description:
|
|
628
636
|
name: shared_preferences_android
|
|
629
|
-
sha256: "
|
|
637
|
+
sha256: "5bcf0772a761b04f8c6bf814721713de6f3e5d9d89caf8d3fe031b02a342379e"
|
|
630
638
|
url: "https://pub.dev"
|
|
631
639
|
source: hosted
|
|
632
|
-
version: "2.4.
|
|
640
|
+
version: "2.4.11"
|
|
633
641
|
shared_preferences_foundation:
|
|
634
642
|
dependency: transitive
|
|
635
643
|
description:
|
|
@@ -719,10 +727,10 @@ packages:
|
|
|
719
727
|
dependency: transitive
|
|
720
728
|
description:
|
|
721
729
|
name: synchronized
|
|
722
|
-
sha256:
|
|
730
|
+
sha256: c254ade258ec8282947a0acbbc90b9575b4f19673533ee46f2f6e9b3aeefd7c0
|
|
723
731
|
url: "https://pub.dev"
|
|
724
732
|
source: hosted
|
|
725
|
-
version: "3.
|
|
733
|
+
version: "3.4.0"
|
|
726
734
|
term_glyph:
|
|
727
735
|
dependency: transitive
|
|
728
736
|
description:
|
|
@@ -775,18 +783,18 @@ packages:
|
|
|
775
783
|
dependency: transitive
|
|
776
784
|
description:
|
|
777
785
|
name: url_launcher_android
|
|
778
|
-
sha256: "
|
|
786
|
+
sha256: "0aedad096a85b49df2e4725fa32118f9fa580f3b14af7a2d2221896a02cd5656"
|
|
779
787
|
url: "https://pub.dev"
|
|
780
788
|
source: hosted
|
|
781
|
-
version: "6.3.
|
|
789
|
+
version: "6.3.17"
|
|
782
790
|
url_launcher_ios:
|
|
783
791
|
dependency: transitive
|
|
784
792
|
description:
|
|
785
793
|
name: url_launcher_ios
|
|
786
|
-
sha256:
|
|
794
|
+
sha256: d80b3f567a617cb923546034cc94bfe44eb15f989fe670b37f26abdb9d939cb7
|
|
787
795
|
url: "https://pub.dev"
|
|
788
796
|
source: hosted
|
|
789
|
-
version: "6.3.
|
|
797
|
+
version: "6.3.4"
|
|
790
798
|
url_launcher_linux:
|
|
791
799
|
dependency: transitive
|
|
792
800
|
description:
|
|
@@ -799,10 +807,10 @@ packages:
|
|
|
799
807
|
dependency: transitive
|
|
800
808
|
description:
|
|
801
809
|
name: url_launcher_macos
|
|
802
|
-
sha256:
|
|
810
|
+
sha256: c043a77d6600ac9c38300567f33ef12b0ef4f4783a2c1f00231d2b1941fea13f
|
|
803
811
|
url: "https://pub.dev"
|
|
804
812
|
source: hosted
|
|
805
|
-
version: "3.2.
|
|
813
|
+
version: "3.2.3"
|
|
806
814
|
url_launcher_platform_interface:
|
|
807
815
|
dependency: transitive
|
|
808
816
|
description:
|
|
@@ -855,10 +863,10 @@ packages:
|
|
|
855
863
|
dependency: transitive
|
|
856
864
|
description:
|
|
857
865
|
name: vector_graphics_compiler
|
|
858
|
-
sha256:
|
|
866
|
+
sha256: ca81fdfaf62a5ab45d7296614aea108d2c7d0efca8393e96174bf4d51e6725b0
|
|
859
867
|
url: "https://pub.dev"
|
|
860
868
|
source: hosted
|
|
861
|
-
version: "1.1.
|
|
869
|
+
version: "1.1.18"
|
|
862
870
|
vector_math:
|
|
863
871
|
dependency: transitive
|
|
864
872
|
description:
|
|
@@ -871,10 +879,10 @@ packages:
|
|
|
871
879
|
dependency: transitive
|
|
872
880
|
description:
|
|
873
881
|
name: vm_service
|
|
874
|
-
sha256:
|
|
882
|
+
sha256: ddfa8d30d89985b96407efce8acbdd124701f96741f2d981ca860662f1c0dc02
|
|
875
883
|
url: "https://pub.dev"
|
|
876
884
|
source: hosted
|
|
877
|
-
version: "
|
|
885
|
+
version: "15.0.0"
|
|
878
886
|
volume_controller:
|
|
879
887
|
dependency: transitive
|
|
880
888
|
description:
|
|
@@ -927,10 +935,10 @@ packages:
|
|
|
927
935
|
dependency: transitive
|
|
928
936
|
description:
|
|
929
937
|
name: win32
|
|
930
|
-
sha256: "
|
|
938
|
+
sha256: "66814138c3562338d05613a6e368ed8cfb237ad6d64a9e9334be3f309acfca03"
|
|
931
939
|
url: "https://pub.dev"
|
|
932
940
|
source: hosted
|
|
933
|
-
version: "5.
|
|
941
|
+
version: "5.14.0"
|
|
934
942
|
win32_registry:
|
|
935
943
|
dependency: transitive
|
|
936
944
|
description:
|
|
@@ -943,10 +951,10 @@ packages:
|
|
|
943
951
|
dependency: transitive
|
|
944
952
|
description:
|
|
945
953
|
name: window_manager
|
|
946
|
-
sha256: "
|
|
954
|
+
sha256: "7eb6d6c4164ec08e1bf978d6e733f3cebe792e2a23fb07cbca25c2872bfdbdcd"
|
|
947
955
|
url: "https://pub.dev"
|
|
948
956
|
source: hosted
|
|
949
|
-
version: "0.5.
|
|
957
|
+
version: "0.5.1"
|
|
950
958
|
window_to_front:
|
|
951
959
|
dependency: transitive
|
|
952
960
|
description:
|
|
@@ -972,5 +980,5 @@ packages:
|
|
|
972
980
|
source: hosted
|
|
973
981
|
version: "6.5.0"
|
|
974
982
|
sdks:
|
|
975
|
-
dart: ">=3.
|
|
983
|
+
dart: ">=3.8.0 <4.0.0"
|
|
976
984
|
flutter: ">=3.29.0"
|
flutter/flet_video/pubspec.yaml
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|