feat(iced-video): added video format to the video frame
Some checks failed
build / checks-matrix (push) Has been cancelled
build / checks-build (push) Has been cancelled
build / codecov (push) Has been cancelled
docs / docs (push) Has been cancelled

This commit is contained in:
2026-01-14 09:51:56 +05:30
parent 97a7a632d4
commit 9dac0b6c78
10 changed files with 310 additions and 230 deletions

View File

@@ -2,7 +2,7 @@ mod settings;
mod video;
mod shared_string;
use iced_video::{Video, VideoHandle};
use iced_video::{Ready, Video, VideoHandle};
use shared_string::SharedString;
use std::sync::Arc;
@@ -140,7 +140,7 @@ struct State {
screen: Screen,
settings: settings::SettingsState,
is_authenticated: bool,
video: Option<Arc<VideoHandle<Message>>>,
video: Option<Arc<VideoHandle<Message, Ready>>>,
}
impl State {

View File

@@ -3,7 +3,7 @@ use super::*;
pub enum VideoMessage {
EndOfStream,
Open(url::Url),
Loaded(VideoHandle<Message>),
Loaded(VideoHandle<Message, Ready>),
Pause,
Play,
Seek(f64),
@@ -55,16 +55,14 @@ pub fn update(state: &mut State, message: VideoMessage) -> Task<Message> {
Task::none()
}
VideoMessage::Test => {
let url = url::Url::parse(
"https://gstreamer.freedesktop.org/data/media/sintel_trailer-480p.webm",
)
let url = url::Url::parse("https://jellyfin.tsuba.darksailor.dev/Items/6010382cf25273e624d305907010d773/Download?api_key=036c140222464878862231ef66a2bc9c")
.expect("Impossible: Failed to parse hardcoded URL");
Task::done(VideoMessage::Open(url)).map(Message::Video)
}
}
}
pub fn player(video: &VideoHandle<Message>) -> Element<'_, Message> {
pub fn player(video: &VideoHandle<Message, Ready>) -> Element<'_, Message> {
container(
Video::new(video)
.width(Length::Fill)