Files
jellytau/api/jellytau_lib/player/index.html
T

8 lines
15 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `player` mod in crate `jellytau_lib`."><title>jellytau_lib::player - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../static.files/rustdoc-17e0aaed.css"><meta name="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="jellytau_lib" data-themes="" data-resource-suffix="" data-rustdoc-version="1.97.1 (8bab26f4f 2026-07-14)" data-channel="1.97.1" data-search-js="search-fd9372ac.js" data-stringdex-js="stringdex-2da4960a.js" data-settings-js="settings-170eb4bf.js" ><script src="../../static.files/storage-41dd4d93.js"></script><script defer src="../sidebar-items.js"></script><script defer src="../../static.files/main-fcd733ba.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-f7c3ffd8.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-044be391.svg"></head><body class="rustdoc mod"><a class="skip-main-content" href="#main-content">Skip to main content</a><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">Module player</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../jellytau_lib/index.html">jellytau_<wbr>lib</a><span class="version">0.11.0</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Module player</a></h2><h3><a href="#reexports">Module Items</a></h3><ul class="block"><li><a href="#reexports" title="Re-exports">Re-exports</a></li><li><a href="#modules" title="Modules">Modules</a></li><li><a href="#structs" title="Structs">Structs</a></li><li><a href="#constants" title="Constants">Constants</a></li><li><a href="#traits" title="Traits">Traits</a></li><li><a href="#functions" title="Functions">Functions</a></li></ul></section><div id="rustdoc-modnav"><h2 class="in-crate"><a href="../index.html">In crate jellytau_<wbr>lib</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content" tabindex="-1"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../index.html">jellytau_lib</a></div><h1>Module <span>player</span>&nbsp;<button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../../src/jellytau_lib/player/mod.rs.html#5-4940">Source</a> </span></div><h2 id="reexports" class="section-header">Re-exports<a href="#reexports" class="anchor">§</a></h2><dl class="item-table reexports"><dt id="reexport.AutoplayDecision"><code>pub use autoplay::<a class="enum" href="autoplay/enum.AutoplayDecision.html" title="enum jellytau_lib::player::autoplay::AutoplayDecision">AutoplayDecision</a>;</code></dt><dt id="reexport.AutoplaySettings"><code>pub use autoplay::<a class="struct" href="autoplay/struct.AutoplaySettings.html" title="struct jellytau_lib::player::autoplay::AutoplaySettings">AutoplaySettings</a>;</code></dt><dt id="reexport.NullBackend"><code>pub use backend::<a class="struct" href="backend/struct.NullBackend.html" title="struct jellytau_lib::player::backend::NullBackend">NullBackend</a>;</code></dt><dt id="reexport.PlayerBackend"><code>pub use backend::<a class="trait" href="backend/trait.PlayerBackend.html" title="trait jellytau_lib::player::backend::PlayerBackend">PlayerBackend</a>;</code></dt><dt id="reexport.PlayerError"><code>pub use backend::<a class="struct" href="backend/struct.PlayerError.html" title="struct jellytau_lib::player::backend::PlayerError">PlayerError</a>;</code></dt><dt id="reexport.PlayerEventEmitter"><code>pub use events::<a class="trait" href="events/trait.PlayerEventEmitter.html" title="trait jellytau_lib::player::events::PlayerEventEmitter">PlayerEventEmitter</a>;</code></dt><dt id="reexport.PlayerStatusEvent"><code>pub use events::<a class="enum" href="events/enum.PlayerStatusEvent.html" title="enum jellytau_lib::player::events::PlayerStatusEvent">PlayerStatusEvent</a>;</code></dt><dt id="reexport.TauriEventEmitter"><code>pub use events::<a class="struct" href="events/struct.TauriEventEmitter.html" title="struct jellytau_lib::player::events::TauriEventEmitter">TauriEventEmitter</a>;</code></dt><dt id="reexport.LegacyPlayer"><code>pub use legacy_player::<a class="struct" href="legacy_player/struct.LegacyPlayer.html" title="struct jellytau_lib::player::legacy_player::LegacyPlayer">LegacyPlayer</a>;</code></dt><dt id="reexport.MediaItem"><code>pub use media::<a class="struct" href="media/struct.MediaItem.html" title="struct jellytau_lib::player::media::MediaItem">MediaItem</a>;</code></dt><dt id="reexport.MediaSource"><code>pub use media::<a class="enum" href="media/enum.MediaSource.html" title="enum jellytau_lib::player::media::MediaSource">MediaSource</a>;</code></dt><dt id="reexport.MediaType"><code>pub use media::<a class="enum" href="media/enum.MediaType.html" title="enum jellytau_lib::player::media::MediaType">MediaType</a>;</code></dt><dt id="reexport.QueueContext"><code>pub use media::<a class="enum" href="media/enum.QueueContext.html" title="enum jellytau_lib::player::media::QueueContext">QueueContext</a>;</code></dt><dt id="reexport.SubtitleTrack"><code>pub use media::<a class="struct" href="media/struct.SubtitleTrack.html" title="struct jellytau_lib::player::media::SubtitleTrack">SubtitleTrack</a>;</code></dt><dt id="reexport.MediaPlayer"><code>pub use media_player::<a class="trait" href="media_player/trait.MediaPlayer.html" title="trait jellytau_lib::player::media_player::MediaPlayer">MediaPlayer</a>;</code></dt><dt id="reexport.OpenRequest"><code>pub use media_player::<a class="struct" href="media_player/struct.OpenRequest.html" title="struct jellytau_lib::player::media_player::OpenRequest">OpenRequest</a>;</code></dt><dt id="reexport.Phase"><code>pub use media_player::<a class="enum" href="media_player/enum.Phase.html" title="enum jellytau_lib::player::media_player::Phase">Phase</a>;</code></dt><dt id="reexport.QueueManager"><code>pub use queue::<a class="struct" href="queue/struct.QueueManager.html" title="struct jellytau_lib::player::queue::QueueManager">QueueManager</a>;</code></dt><dt id="reexport.RepeatMode"><code>pub use queue::<a class="enum" href="queue/enum.RepeatMode.html" title="enum jellytau_lib::player::queue::RepeatMode">RepeatMode</a>;</code></dt><dt id="reexport.determine_video_seek_strategy"><code>pub use seek::<a class="fn" href="seek/fn.determine_video_seek_strategy.html" title="fn jellytau_lib::player::seek::determine_video_seek_strategy">determine_video_seek_strategy</a>;</code></dt><dt id="reexport.VideoSeekStrategy"><code>pub use seek::<a class="enum" href="seek/enum.VideoSeekStrategy.html" title="enum jellytau_lib::player::seek::VideoSeekStrategy">VideoSeekStrategy</a>;</code></dt><dt id="reexport.MediaSessionManager"><code>pub use session::<a class="struct" href="session/struct.MediaSessionManager.html" title="struct jellytau_lib::player::session::MediaSessionManager">MediaSessionManager</a>;</code></dt><dt id="reexport.MediaSessionType"><code>pub use session::<a class="enum" href="session/enum.MediaSessionType.html" title="enum jellytau_lib::player::session::MediaSessionType">MediaSessionType</a>;</code></dt><dt id="reexport.SleepTimerMode"><code>pub use sleep_timer::<a class="enum" href="sleep_timer/enum.SleepTimerMode.html" title="enum jellytau_lib::player::sleep_timer::SleepTimerMode">SleepTimerMode</a>;</code></dt><dt id="reexport.SleepTimerState"><code>pub use sleep_timer::<a class="struct" href="sleep_timer/struct.SleepTimerState.html" title="struct jellytau_lib::player::sleep_timer::SleepTimerState">SleepTimerState</a>;</code></dt><dt id="reexport.EndReason"><code>pub use state::<a class="enum" href="state/enum.EndReason.html" title="enum jellytau_lib::player::state::EndReason">EndReason</a>;</code></dt><dt id="reexport.PlayerState"><code>pub use state::<a class="enum" href="state/enum.PlayerState.html" title="enum jellytau_lib::player::state::PlayerState">PlayerState</a>;</code></dt><dt id="reexport.MpvBackend"><code>pub use mpv_backend::<a class="struct" href="mpv_backend/struct.MpvBackend.html" title="struct jellytau_lib::player::mpv_backend::MpvBackend">MpvBackend</a>;</code></dt></dl><h2 id="modules" class="section-header">Modules<a href="#modules" class="anchor">§</a></h2><dl class="item-table"><dt><a class="mod" href="autoplay/index.html" title="mod jellytau_lib::player::autoplay">autoplay</a></dt><dt><a class="mod" href="backend/index.html" title="mod jellytau_lib::player::backend">backend</a></dt><dt><a class="mod" href="background_policy/index.html" title="mod jellytau_lib::player::background_policy">background_<wbr>policy</a></dt><dd>What playback should do when the app stops being visible.</dd><dt><a class="mod" href="events/index.html" title="mod jellytau_lib::player::events">events</a></dt><dd>Player events for frontend communication via Tauri events.</dd><dt><a class="mod" href="legacy_player/index.html" title="mod jellytau_lib::player::legacy_player">legacy_<wbr>player</a></dt><dd>A <a href="media_player/trait.MediaPlayer.html" title="trait jellytau_lib::player::media_player::MediaPlayer"><code>MediaPlayer</code></a> over the old <a href="backend/trait.PlayerBackend.html" title="trait jellytau_lib::player::backend::PlayerBackend"><code>PlayerBackend</code></a> trait.</dd><dt><a class="mod" href="media/index.html" title="mod jellytau_lib::player::media">media</a></dt><dt><a class="mod" href="media_player/index.html" title="mod jellytau_lib::player::media_player">media_<wbr>player</a></dt><dd>The <code>MediaPlayer</code> contract: one API, interchangeable engines.</dd><dt><a class="mod" href="mpv_backend/index.html" title="mod jellytau_lib::player::mpv_backend">mpv_<wbr>backend</a></dt><dt><a class="mod" href="mpv_player/index.html" title="mod jellytau_lib::player::mpv_player">mpv_<wbr>player</a></dt><dd><a href="media_player/trait.MediaPlayer.html" title="trait jellytau_lib::player::media_player::MediaPlayer"><code>MediaPlayer</code></a> over libmpv.</dd><dt><a class="mod" href="mpv_render/index.html" title="mod jellytau_lib::player::mpv_render">mpv_<wbr>render</a></dt><dd>mpvs render API into a framebuffer we own (UR-080 / DR-231, IR-033).</dd><dt><a class="mod" href="native_video/index.html" title="mod jellytau_lib::player::native_video">native_<wbr>video</a></dt><dd>Whether this process renders video natively — one answer, three consumers
(UR-080 / DR-231, DR-235).
Whether this process renders video natively, answered once.</dd><dt><a class="mod" href="queue/index.html" title="mod jellytau_lib::player::queue">queue</a></dt><dt><a class="mod" href="seek/index.html" title="mod jellytau_lib::player::seek">seek</a></dt><dd>Video seek strategy decision logic.</dd><dt><a class="mod" href="session/index.html" title="mod jellytau_lib::player::session">session</a></dt><dt><a class="mod" href="sleep_timer/index.html" title="mod jellytau_lib::player::sleep_timer">sleep_<wbr>timer</a></dt><dt><a class="mod" href="state/index.html" title="mod jellytau_lib::player::state">state</a></dt><dt><a class="mod" href="stream_end/index.html" title="mod jellytau_lib::player::stream_end">stream_<wbr>end</a></dt><dd>Telling a <em>finished</em> stream apart from a <em>truncated</em> one.</dd><dt><a class="mod" href="video_surface/index.html" title="mod jellytau_lib::player::video_surface">video_<wbr>surface</a></dt><dd>The native video surface mpv renders into (UR-080 / DR-231).</dd></dl><h2 id="structs" class="section-header">Structs<a href="#structs" class="anchor">§</a></h2><dl class="item-table"><dt><a class="struct" href="struct.LockscreenMetadata.html" title="struct jellytau_lib::player::LockscreenMetadata">Lockscreen<wbr>Metadata</a></dt><dd>Metadata for the lockscreen / media notification.</dd><dt><a class="struct" href="struct.PlayerController.html" title="struct jellytau_lib::player::PlayerController">Player<wbr>Controller</a></dt><dd>Central player controller that coordinates playback</dd><dt><a class="struct" href="struct.ReporterSink.html" title="struct jellytau_lib::player::ReporterSink">Reporter<wbr>Sink</a><span title="Restricted Visibility">&nbsp;🔒</span> </dt><dd>The production sink: hands each operation to the <code>PlaybackReporter</code>.</dd></dl><h2 id="constants" class="section-header">Constants<a href="#constants" class="anchor">§</a></h2><dl class="item-table"><dt><a class="constant" href="constant.RESUME_BACKOFF_STEP_SECS.html" title="constant jellytau_lib::player::RESUME_BACKOFF_STEP_SECS">RESUME_<wbr>BACKOFF_<wbr>STEP_<wbr>SECS</a><span title="Restricted Visibility">&nbsp;🔒</span> </dt><dd>Seconds added per attempt before retrying a stream that failed with an error.</dd></dl><h2 id="traits" class="section-header">Traits<a href="#traits" class="anchor">§</a></h2><dl class="item-table"><dt><a class="trait" href="trait.PlaybackReportSink.html" title="trait jellytau_lib::player::PlaybackReportSink">Playback<wbr>Report<wbr>Sink</a></dt><dd>Where the players playback reports go.</dd></dl><h2 id="functions" class="section-header">Functions<a href="#functions" class="anchor">§</a></h2><dl class="item-table"><dt><a class="fn" href="fn.completion_report_position.html" title="fn jellytau_lib::player::completion_report_position">completion_<wbr>report_<wbr>position</a><span title="Restricted Visibility">&nbsp;🔒</span> </dt><dd>The position to report when a stream ends naturally.</dd><dt><a class="fn" href="fn.set_lockscreen_position_offset.html" title="fn jellytau_lib::player::set_lockscreen_position_offset">set_<wbr>lockscreen_<wbr>position_<wbr>offset</a></dt><dd>Set the base offset (seconds) added to positions reported to the Android
lockscreen scrubber. Used by the background-audio handoff: the audio stream
starts at the handoff point (StartTimeTicks), so ExoPlayers position is
relative and must be shifted back to absolute to match the full duration.
Pass 0.0 to clear on exit. No-op off Android.</dd><dt><a class="fn" href="fn.update_lockscreen_metadata.html" title="fn jellytau_lib::player::update_lockscreen_metadata">update_<wbr>lockscreen_<wbr>metadata</a></dt><dd>Push now-playing metadata to the Android lockscreen. No-op off Android, so the
session poller can call it unconditionally and stay platform-agnostic.</dd></dl></section></div></main></body></html>