Name | flet-video JSON |
Version |
0.1.1
JSON |
| download |
home_page | None |
Summary | Video control for Flet |
upload_time | 2025-06-18 19:04:43 |
maintainer | None |
docs_url | None |
author | None |
requires_python | >=3.8 |
license | None |
keywords |
|
VCS |
 |
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
# Flet Video control
`Video` control for Flet.
## Usage
Add `flet-video` as dependency (`pyproject.toml` or `requirements.txt`) to your Flet project.
## Example
```py
import random
import flet as ft
import flet_video as ftv
def main(page: ft.Page):
page.theme_mode = ft.ThemeMode.LIGHT
page.title = "TheEthicalVideo"
page.window.always_on_top = True
page.spacing = 20
page.horizontal_alignment = ft.CrossAxisAlignment.CENTER
def handle_pause(e):
video.pause()
print("Video.pause()")
def handle_play_or_pause(e):
video.play_or_pause()
print("Video.play_or_pause()")
def handle_play(e):
video.play()
print("Video.play()")
def handle_stop(e):
video.stop()
print("Video.stop()")
def handle_next(e):
video.next()
print("Video.next()")
def handle_previous(e):
video.previous()
print("Video.previous()")
def handle_volume_change(e):
video.volume = e.control.value
page.update()
print(f"Video.volume = {e.control.value}")
def handle_playback_rate_change(e):
video.playback_rate = e.control.value
page.update()
print(f"Video.playback_rate = {e.control.value}")
def handle_seek(e):
video.seek(10000)
print(f"Video.seek(10000)")
def handle_add_media(e):
video.playlist_add(random.choice(sample_media))
print(f"Video.playlist_add(random.choice(sample_media))")
def handle_remove_media(e):
r = random.randint(0, len(video.playlist) - 1)
video.playlist_remove(r)
print(f"Popped Item at index: {r} (position {r+1})")
def handle_jump(e):
print(f"Video.jump_to(0)")
video.jump_to(0)
sample_media = [
ftv.VideoMedia(
"https://user-images.githubusercontent.com/28951144/229373720-14d69157-1a56-4a78-a2f4-d7a134d7c3e9.mp4"
),
ftv.VideoMedia(
"https://user-images.githubusercontent.com/28951144/229373718-86ce5e1d-d195-45d5-baa6-ef94041d0b90.mp4"
),
ftv.VideoMedia(
"https://user-images.githubusercontent.com/28951144/229373716-76da0a4e-225a-44e4-9ee7-3e9006dbc3e3.mp4"
),
ftv.VideoMedia(
"https://user-images.githubusercontent.com/28951144/229373695-22f88f13-d18f-4288-9bf1-c3e078d83722.mp4"
),
ftv.VideoMedia(
"https://user-images.githubusercontent.com/28951144/229373709-603a7a89-2105-4e1b-a5a5-a6c3567c9a59.mp4",
extras={
"artist": "Thousand Foot Krutch",
"album": "The End Is Where We Begin",
},
http_headers={
"Foo": "Bar",
"Accept": "*/*",
},
),
]
page.add(
video := ftv.Video(
expand=True,
playlist=sample_media[0:2],
playlist_mode=ftv.PlaylistMode.LOOP,
fill_color=ft.Colors.BLUE_400,
aspect_ratio=16 / 9,
volume=100,
autoplay=False,
filter_quality=ft.FilterQuality.HIGH,
muted=False,
on_loaded=lambda e: print("Video loaded successfully!"),
on_enter_fullscreen=lambda e: print("Video entered fullscreen!"),
on_exit_fullscreen=lambda e: print("Video exited fullscreen!"),
),
ft.Row(
wrap=True,
alignment=ft.MainAxisAlignment.CENTER,
controls=[
ft.ElevatedButton("Play", on_click=handle_play),
ft.ElevatedButton("Pause", on_click=handle_pause),
ft.ElevatedButton("Play Or Pause", on_click=handle_play_or_pause),
ft.ElevatedButton("Stop", on_click=handle_stop),
ft.ElevatedButton("Next", on_click=handle_next),
ft.ElevatedButton("Previous", on_click=handle_previous),
ft.ElevatedButton("Seek s=10", on_click=handle_seek),
ft.ElevatedButton("Jump to first Media", on_click=handle_jump),
ft.ElevatedButton("Add Random Media", on_click=handle_add_media),
ft.ElevatedButton("Remove Random Media", on_click=handle_remove_media),
],
),
ft.Slider(
min=0,
value=100,
max=100,
label="Volume = {value}%",
divisions=10,
width=400,
on_change=handle_volume_change,
),
ft.Slider(
min=1,
value=1,
max=3,
label="PlaybackRate = {value}X",
divisions=6,
width=400,
on_change=handle_playback_rate_change,
),
)
ft.app(main)
```
Raw data
{
"_id": null,
"home_page": null,
"name": "flet-video",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": null,
"keywords": null,
"author": null,
"author_email": "Flet contributors <hello@flet.dev>",
"download_url": "https://files.pythonhosted.org/packages/d7/bb/52b9d0ed3fdbf062dd62a62c01d34656e39939d08c511a32f8a174819c05/flet_video-0.1.1.tar.gz",
"platform": null,
"description": "# Flet Video control\n\n`Video` control for Flet.\n\n## Usage\n\nAdd `flet-video` as dependency (`pyproject.toml` or `requirements.txt`) to your Flet project.\n\n## Example\n\n```py\nimport random\n\nimport flet as ft\n\nimport flet_video as ftv\n\n\ndef main(page: ft.Page):\n page.theme_mode = ft.ThemeMode.LIGHT\n page.title = \"TheEthicalVideo\"\n page.window.always_on_top = True\n page.spacing = 20\n page.horizontal_alignment = ft.CrossAxisAlignment.CENTER\n\n def handle_pause(e):\n video.pause()\n print(\"Video.pause()\")\n\n def handle_play_or_pause(e):\n video.play_or_pause()\n print(\"Video.play_or_pause()\")\n\n def handle_play(e):\n video.play()\n print(\"Video.play()\")\n\n def handle_stop(e):\n video.stop()\n print(\"Video.stop()\")\n\n def handle_next(e):\n video.next()\n print(\"Video.next()\")\n\n def handle_previous(e):\n video.previous()\n print(\"Video.previous()\")\n\n def handle_volume_change(e):\n video.volume = e.control.value\n page.update()\n print(f\"Video.volume = {e.control.value}\")\n\n def handle_playback_rate_change(e):\n video.playback_rate = e.control.value\n page.update()\n print(f\"Video.playback_rate = {e.control.value}\")\n\n def handle_seek(e):\n video.seek(10000)\n print(f\"Video.seek(10000)\")\n\n def handle_add_media(e):\n video.playlist_add(random.choice(sample_media))\n print(f\"Video.playlist_add(random.choice(sample_media))\")\n\n def handle_remove_media(e):\n r = random.randint(0, len(video.playlist) - 1)\n video.playlist_remove(r)\n print(f\"Popped Item at index: {r} (position {r+1})\")\n\n def handle_jump(e):\n print(f\"Video.jump_to(0)\")\n video.jump_to(0)\n\n sample_media = [\n ftv.VideoMedia(\n \"https://user-images.githubusercontent.com/28951144/229373720-14d69157-1a56-4a78-a2f4-d7a134d7c3e9.mp4\"\n ),\n ftv.VideoMedia(\n \"https://user-images.githubusercontent.com/28951144/229373718-86ce5e1d-d195-45d5-baa6-ef94041d0b90.mp4\"\n ),\n ftv.VideoMedia(\n \"https://user-images.githubusercontent.com/28951144/229373716-76da0a4e-225a-44e4-9ee7-3e9006dbc3e3.mp4\"\n ),\n ftv.VideoMedia(\n \"https://user-images.githubusercontent.com/28951144/229373695-22f88f13-d18f-4288-9bf1-c3e078d83722.mp4\"\n ),\n ftv.VideoMedia(\n \"https://user-images.githubusercontent.com/28951144/229373709-603a7a89-2105-4e1b-a5a5-a6c3567c9a59.mp4\",\n extras={\n \"artist\": \"Thousand Foot Krutch\",\n \"album\": \"The End Is Where We Begin\",\n },\n http_headers={\n \"Foo\": \"Bar\",\n \"Accept\": \"*/*\",\n },\n ),\n ]\n\n page.add(\n video := ftv.Video(\n expand=True,\n playlist=sample_media[0:2],\n playlist_mode=ftv.PlaylistMode.LOOP,\n fill_color=ft.Colors.BLUE_400,\n aspect_ratio=16 / 9,\n volume=100,\n autoplay=False,\n filter_quality=ft.FilterQuality.HIGH,\n muted=False,\n on_loaded=lambda e: print(\"Video loaded successfully!\"),\n on_enter_fullscreen=lambda e: print(\"Video entered fullscreen!\"),\n on_exit_fullscreen=lambda e: print(\"Video exited fullscreen!\"),\n ),\n ft.Row(\n wrap=True,\n alignment=ft.MainAxisAlignment.CENTER,\n controls=[\n ft.ElevatedButton(\"Play\", on_click=handle_play),\n ft.ElevatedButton(\"Pause\", on_click=handle_pause),\n ft.ElevatedButton(\"Play Or Pause\", on_click=handle_play_or_pause),\n ft.ElevatedButton(\"Stop\", on_click=handle_stop),\n ft.ElevatedButton(\"Next\", on_click=handle_next),\n ft.ElevatedButton(\"Previous\", on_click=handle_previous),\n ft.ElevatedButton(\"Seek s=10\", on_click=handle_seek),\n ft.ElevatedButton(\"Jump to first Media\", on_click=handle_jump),\n ft.ElevatedButton(\"Add Random Media\", on_click=handle_add_media),\n ft.ElevatedButton(\"Remove Random Media\", on_click=handle_remove_media),\n ],\n ),\n ft.Slider(\n min=0,\n value=100,\n max=100,\n label=\"Volume = {value}%\",\n divisions=10,\n width=400,\n on_change=handle_volume_change,\n ),\n ft.Slider(\n min=1,\n value=1,\n max=3,\n label=\"PlaybackRate = {value}X\",\n divisions=6,\n width=400,\n on_change=handle_playback_rate_change,\n ),\n )\n\n\nft.app(main)\n```\n",
"bugtrack_url": null,
"license": null,
"summary": "Video control for Flet",
"version": "0.1.1",
"project_urls": {
"Documentation": "https://flet.dev/docs/controls/video",
"Homepage": "https://flet.dev",
"Issues": "https://github.com/flet-dev/flet-video/issues",
"Repository": "https://github.com/flet-dev/flet-video"
},
"split_keywords": [],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "0948daf6fbe8dd49ebf89687a3a8151bbf7bfa7fa2aa24ac3de10b2d743da380",
"md5": "4fab3552f31c9be6402f2cb0e4b5ad28",
"sha256": "068283f79248bc702e9633d1c145d7888a5486c6448eb62f493b0a62f9d7e5e8"
},
"downloads": -1,
"filename": "flet_video-0.1.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "4fab3552f31c9be6402f2cb0e4b5ad28",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 23440,
"upload_time": "2025-06-18T19:04:42",
"upload_time_iso_8601": "2025-06-18T19:04:42.185799Z",
"url": "https://files.pythonhosted.org/packages/09/48/daf6fbe8dd49ebf89687a3a8151bbf7bfa7fa2aa24ac3de10b2d743da380/flet_video-0.1.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "d7bb52b9d0ed3fdbf062dd62a62c01d34656e39939d08c511a32f8a174819c05",
"md5": "fcafaae9703baa1e4581a1bd54622baa",
"sha256": "49bfc9a4eec97f7301cb25666e5973025f7eb3cd82252d14b7f1477b275f9b74"
},
"downloads": -1,
"filename": "flet_video-0.1.1.tar.gz",
"has_sig": false,
"md5_digest": "fcafaae9703baa1e4581a1bd54622baa",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 23399,
"upload_time": "2025-06-18T19:04:43",
"upload_time_iso_8601": "2025-06-18T19:04:43.301396Z",
"url": "https://files.pythonhosted.org/packages/d7/bb/52b9d0ed3fdbf062dd62a62c01d34656e39939d08c511a32f8a174819c05/flet_video-0.1.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-06-18 19:04:43",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "flet-dev",
"github_project": "flet-video",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"appveyor": true,
"lcname": "flet-video"
}