| <link rel="stylesheet" href="../style.css" /> |
| |
| [TOC] |
| # fuchsia.media.playback |
| |
| <p><b>Added:7</b></p> |
| |
| ## **PROTOCOLS** |
| |
| ## ElementarySource {#ElementarySource} |
| *Defined in [fuchsia.media.playback/source_manager.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.media.playback/source_manager.fidl;l=69)* |
| <p><code>Source</code> variant for providing elementary streams directly to the player.</p> |
| |
| ### AddBinding {#ElementarySource.AddBinding} |
| |
| <p>Adds a new binding to this <code>ElementarySource</code>. By using this method, |
| the client can obtain an additional channel through which to communicate |
| to this <code>ElementarySource</code> even after a channel is consumed by a call to |
| <code>SourceManager.SetSource</code>.</p> |
| |
| #### Request {#ElementarySource.AddBinding_Request} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>source_request</code></td> |
| <td> |
| <code>request<<a class='link' href='#ElementarySource'>ElementarySource</a>></code> |
| </td> |
| </tr> |
| </table> |
| |
| |
| ### AddStream {#ElementarySource.AddStream} |
| |
| <p>Adds an elementary stream. The elementary stream can be removed by |
| closing the <code>SimpleStreamSink</code>. <code>ticks_per_second_numerator</code> and |
| <code>ticks_per_second_denominator</code> indicate the units that will be used for |
| <code>Streampacket</code> timestamp values. For nanoseconds units, for example, |
| <code>ticks_per_second_numerator</code> should be 1000000000 and |
| <code>ticks_per_second_denominator</code> should be 1. To use units of frames for |
| 48k audio, <code>ticks_per_second_numerator</code> should be 48000 and |
| <code>ticks_per_second_denominator</code> should be 1.</p> |
| |
| #### Request {#ElementarySource.AddStream_Request} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>type</code></td> |
| <td> |
| <code><a class='link' href='../fuchsia.media/'>fuchsia.media</a>/<a class='link' href='../fuchsia.media/#StreamType'>StreamType</a></code> |
| </td> |
| </tr> |
| <tr> |
| <td><code>ticks_per_second_numerator</code></td> |
| <td> |
| <code>uint32</code> |
| </td> |
| </tr> |
| <tr> |
| <td><code>ticks_per_second_denominator</code></td> |
| <td> |
| <code>uint32</code> |
| </td> |
| </tr> |
| <tr> |
| <td><code>sink_request</code></td> |
| <td> |
| <code>request<<a class='link' href='../fuchsia.media/'>fuchsia.media</a>/<a class='link' href='../fuchsia.media/#SimpleStreamSink'>SimpleStreamSink</a>></code> |
| </td> |
| </tr> |
| </table> |
| |
| |
| ### OnStatusChanged {#ElementarySource.OnStatusChanged} |
| |
| |
| |
| #### Response {#ElementarySource.OnStatusChanged_Response} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>source_status</code></td> |
| <td> |
| <code><a class='link' href='#SourceStatus'>SourceStatus</a></code> |
| </td> |
| </tr> |
| </table> |
| |
| ## Player {#Player} |
| *Defined in [fuchsia.media.playback/player.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.media.playback/player.fidl;l=14)* |
| <p>Plays media.</p> |
| |
| ### AddBinding {#Player.AddBinding} |
| |
| <p>Adds a new binding to this player.</p> |
| |
| #### Request {#Player.AddBinding_Request} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>player_request</code></td> |
| <td> |
| <code>request<<a class='link' href='#Player'>Player</a>></code> |
| </td> |
| </tr> |
| </table> |
| |
| |
| ### BindGainControl {#Player.BindGainControl} |
| |
| <p>Binds to the gain control for this player.</p> |
| |
| #### Request {#Player.BindGainControl_Request} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>gain_control_request</code></td> |
| <td> |
| <code>request<<a class='link' href='../fuchsia.media.audio/'>fuchsia.media.audio</a>/<a class='link' href='../fuchsia.media.audio/#GainControl'>GainControl</a>></code> |
| </td> |
| </tr> |
| </table> |
| |
| |
| ### CancelSourceTransition {#Player.CancelSourceTransition} |
| |
| <p>Cancels a pending transition, returning the source. If no transition is |
| pending, the request channel is closed.</p> |
| |
| #### Request {#Player.CancelSourceTransition_Request} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>returned_source_request</code></td> |
| <td> |
| <code>request<<a class='link' href='#Source'>Source</a>></code> |
| </td> |
| </tr> |
| </table> |
| |
| |
| ### CreateElementarySource {#Player.CreateElementarySource} |
| |
| <p>Creates a source that allows the client to provide independent elementary |
| streams to the player. duration_ns, can_pause, can_seek and metadata are |
| all included in the SourceStatus and, when the <code>ElementarySource</code> is used by |
| the player, in the <code>PlayerStatus</code> as well. <code>can_pause</code> and <code>can_seek</code>, when |
| false, constrain the capabilities of the player.</p> |
| |
| #### Request {#Player.CreateElementarySource_Request} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>duration_ns</code></td> |
| <td> |
| <code><a class='link' href='../zx/'>zx</a>/<a class='link' href='../zx/#duration'>duration</a></code> |
| </td> |
| </tr> |
| <tr> |
| <td><code>can_pause</code></td> |
| <td> |
| <code>bool</code> |
| </td> |
| </tr> |
| <tr> |
| <td><code>can_seek</code></td> |
| <td> |
| <code>bool</code> |
| </td> |
| </tr> |
| <tr> |
| <td><code>metadata</code></td> |
| <td> |
| <code><a class='link' href='../fuchsia.media/'>fuchsia.media</a>/<a class='link' href='../fuchsia.media/#Metadata'>Metadata</a>?</code> |
| </td> |
| </tr> |
| <tr> |
| <td><code>source_request</code></td> |
| <td> |
| <code>request<<a class='link' href='#ElementarySource'>ElementarySource</a>></code> |
| </td> |
| </tr> |
| </table> |
| |
| |
| ### CreateFileSource {#Player.CreateFileSource} |
| |
| <p>Creates a source that reads from a file.</p> |
| |
| #### Request {#Player.CreateFileSource_Request} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>file_channel</code></td> |
| <td> |
| <code>handle<channel></code> |
| </td> |
| </tr> |
| <tr> |
| <td><code>source_request</code></td> |
| <td> |
| <code>request<<a class='link' href='#Source'>Source</a>></code> |
| </td> |
| </tr> |
| </table> |
| |
| |
| ### CreateReaderSource {#Player.CreateReaderSource} |
| |
| <p>Creates a source that reads from a <code>SeekingReader</code>.</p> |
| |
| #### Request {#Player.CreateReaderSource_Request} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>seeking_reader</code></td> |
| <td> |
| <code><a class='link' href='#SeekingReader'>SeekingReader</a></code> |
| </td> |
| </tr> |
| <tr> |
| <td><code>source_request</code></td> |
| <td> |
| <code>request<<a class='link' href='#Source'>Source</a>></code> |
| </td> |
| </tr> |
| </table> |
| |
| |
| ### CreateView {#Player.CreateView} |
| |
| <p>Creates a video view.</p> |
| |
| #### Request {#Player.CreateView_Request} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>view_token</code></td> |
| <td> |
| <code><a class='link' href='../fuchsia.ui.views/'>fuchsia.ui.views</a>/<a class='link' href='../fuchsia.ui.views/#ViewToken'>ViewToken</a></code> |
| </td> |
| </tr> |
| </table> |
| |
| |
| ### OnStatusChanged {#Player.OnStatusChanged} |
| |
| <p>Provides current status immediately after binding and whenever status |
| changes thereafter.</p> |
| |
| |
| #### Response {#Player.OnStatusChanged_Response} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>player_status</code></td> |
| <td> |
| <code><a class='link' href='#PlayerStatus'>PlayerStatus</a></code> |
| </td> |
| </tr> |
| </table> |
| |
| ### Pause {#Player.Pause} |
| |
| <p>Pauses playback.</p> |
| |
| #### Request {#Player.Pause_Request} |
| |
| <EMPTY> |
| |
| |
| ### Play {#Player.Play} |
| |
| <p>Starts playback.</p> |
| |
| #### Request {#Player.Play_Request} |
| |
| <EMPTY> |
| |
| |
| ### Seek {#Player.Seek} |
| |
| <p>Seeks to the specified position, specified in nanoseconds.</p> |
| |
| #### Request {#Player.Seek_Request} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>position</code></td> |
| <td> |
| <code>int64</code> |
| </td> |
| </tr> |
| </table> |
| |
| |
| ### SetFileSource {#Player.SetFileSource} |
| |
| <p>Sets a file channel to read from.</p> |
| |
| #### Request {#Player.SetFileSource_Request} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>file_channel</code></td> |
| <td> |
| <code>handle<channel></code> |
| </td> |
| </tr> |
| </table> |
| |
| |
| ### SetFileSourceWithOptions {#Player.SetFileSourceWithOptions} |
| |
| <p>Sets a file channel to read from.</p> |
| |
| #### Request {#Player.SetFileSourceWithOptions_Request} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>file_channel</code></td> |
| <td> |
| <code>handle<channel></code> |
| </td> |
| </tr> |
| <tr> |
| <td><code>options</code></td> |
| <td> |
| <code><a class='link' href='#PlayerOptions'>PlayerOptions</a></code> |
| </td> |
| </tr> |
| </table> |
| |
| |
| ### SetPlaybackRate {#Player.SetPlaybackRate} |
| |
| <p>Sets the rate to be used when the player is playing. <code>rate</code> must be positive. The |
| <code>timeline_function</code> field of <code>PlayerStatus</code> indicates the actual rate when the player |
| is playing.</p> |
| |
| #### Request {#Player.SetPlaybackRate_Request} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>playback_rate</code></td> |
| <td> |
| <code>float32</code> |
| </td> |
| </tr> |
| </table> |
| |
| |
| ### SetSource {#Player.SetSource} |
| |
| <p>Sets the source for this player to use. If source is null, the player |
| becomes idle.</p> |
| |
| #### Request {#Player.SetSource_Request} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>source</code></td> |
| <td> |
| <code><a class='link' href='#Source'>Source</a>?</code> |
| </td> |
| </tr> |
| </table> |
| |
| |
| ### TransitionToSource {#Player.TransitionToSource} |
| |
| <p>Transitions to the specified source when playback of the current source |
| reaches transition_pts. The new source starts playback at start_pts. If |
| a transition is already pending, it will be discarded in favor of the new |
| transition.</p> |
| |
| #### Request {#Player.TransitionToSource_Request} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>source</code></td> |
| <td> |
| <code><a class='link' href='#Source'>Source</a></code> |
| </td> |
| </tr> |
| <tr> |
| <td><code>transition_pts</code></td> |
| <td> |
| <code>int64</code> |
| </td> |
| </tr> |
| <tr> |
| <td><code>start_pts</code></td> |
| <td> |
| <code>int64</code> |
| </td> |
| </tr> |
| </table> |
| |
| |
| ## SeekingReader {#SeekingReader} |
| *Defined in [fuchsia.media.playback/seeking_reader.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.media.playback/seeking_reader.fidl;l=10)* |
| |
| ### Describe {#SeekingReader.Describe} |
| |
| |
| #### Request {#SeekingReader.Describe_Request} |
| |
| <EMPTY> |
| |
| |
| #### Response {#SeekingReader.Describe_Response} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>status</code></td> |
| <td> |
| <code><a class='link' href='../zx/'>zx</a>/<a class='link' href='../zx/#status'>status</a></code> |
| </td> |
| </tr> |
| <tr> |
| <td><code>size</code></td> |
| <td> |
| <code>uint64</code> |
| </td> |
| </tr> |
| <tr> |
| <td><code>can_seek</code></td> |
| <td> |
| <code>bool</code> |
| </td> |
| </tr> |
| </table> |
| |
| ### ReadAt {#SeekingReader.ReadAt} |
| |
| |
| #### Request {#SeekingReader.ReadAt_Request} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>position</code></td> |
| <td> |
| <code>uint64</code> |
| </td> |
| </tr> |
| </table> |
| |
| |
| #### Response {#SeekingReader.ReadAt_Response} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>status</code></td> |
| <td> |
| <code><a class='link' href='../zx/'>zx</a>/<a class='link' href='../zx/#status'>status</a></code> |
| </td> |
| </tr> |
| <tr> |
| <td><code>socket</code></td> |
| <td> |
| <code>handle<socket>?</code> |
| </td> |
| </tr> |
| </table> |
| |
| ## Source {#Source} |
| *Defined in [fuchsia.media.playback/source_manager.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.media.playback/source_manager.fidl;l=60)* |
| <p>A source of content that may be used by a player.</p> |
| |
| ### OnStatusChanged {#Source.OnStatusChanged} |
| |
| |
| |
| #### Response {#Source.OnStatusChanged_Response} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>source_status</code></td> |
| <td> |
| <code><a class='link' href='#SourceStatus'>SourceStatus</a></code> |
| </td> |
| </tr> |
| </table> |
| |
| ## SourceManager {#SourceManager} |
| *Defined in [fuchsia.media.playback/source_manager.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.media.playback/source_manager.fidl;l=10)* |
| <p>Manages sources on behalf of a Player.</p> |
| |
| ### CancelSourceTransition {#SourceManager.CancelSourceTransition} |
| |
| <p>Cancels a pending transition, returning the source. If no transition is |
| pending, the request channel is closed.</p> |
| |
| #### Request {#SourceManager.CancelSourceTransition_Request} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>returned_source_request</code></td> |
| <td> |
| <code>request<<a class='link' href='#Source'>Source</a>></code> |
| </td> |
| </tr> |
| </table> |
| |
| |
| ### CreateElementarySource {#SourceManager.CreateElementarySource} |
| |
| <p>Creates a source that allows the client to provide independent elementary |
| streams to the player. duration_ns, can_pause, can_seek and metadata are |
| all included in the SourceStatus and, when the <code>ElementarySource</code> is used by |
| the player, in the <code>PlayerStatus</code> as well. <code>can_pause</code> and <code>can_seek</code>, when |
| false, constrain the capabilities of the player.</p> |
| |
| #### Request {#SourceManager.CreateElementarySource_Request} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>duration_ns</code></td> |
| <td> |
| <code><a class='link' href='../zx/'>zx</a>/<a class='link' href='../zx/#duration'>duration</a></code> |
| </td> |
| </tr> |
| <tr> |
| <td><code>can_pause</code></td> |
| <td> |
| <code>bool</code> |
| </td> |
| </tr> |
| <tr> |
| <td><code>can_seek</code></td> |
| <td> |
| <code>bool</code> |
| </td> |
| </tr> |
| <tr> |
| <td><code>metadata</code></td> |
| <td> |
| <code><a class='link' href='../fuchsia.media/'>fuchsia.media</a>/<a class='link' href='../fuchsia.media/#Metadata'>Metadata</a>?</code> |
| </td> |
| </tr> |
| <tr> |
| <td><code>source_request</code></td> |
| <td> |
| <code>request<<a class='link' href='#ElementarySource'>ElementarySource</a>></code> |
| </td> |
| </tr> |
| </table> |
| |
| |
| ### CreateFileSource {#SourceManager.CreateFileSource} |
| |
| <p>Creates a source that reads from a file.</p> |
| |
| #### Request {#SourceManager.CreateFileSource_Request} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>file_channel</code></td> |
| <td> |
| <code>handle<channel></code> |
| </td> |
| </tr> |
| <tr> |
| <td><code>source_request</code></td> |
| <td> |
| <code>request<<a class='link' href='#Source'>Source</a>></code> |
| </td> |
| </tr> |
| </table> |
| |
| |
| ### CreateReaderSource {#SourceManager.CreateReaderSource} |
| |
| <p>Creates a source that reads from a <code>SeekingReader</code>.</p> |
| |
| #### Request {#SourceManager.CreateReaderSource_Request} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>seeking_reader</code></td> |
| <td> |
| <code><a class='link' href='#SeekingReader'>SeekingReader</a></code> |
| </td> |
| </tr> |
| <tr> |
| <td><code>source_request</code></td> |
| <td> |
| <code>request<<a class='link' href='#Source'>Source</a>></code> |
| </td> |
| </tr> |
| </table> |
| |
| |
| ### SetSource {#SourceManager.SetSource} |
| |
| <p>Sets the source for this player to use. If source is null, the player |
| becomes idle.</p> |
| |
| #### Request {#SourceManager.SetSource_Request} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>source</code></td> |
| <td> |
| <code><a class='link' href='#Source'>Source</a>?</code> |
| </td> |
| </tr> |
| </table> |
| |
| |
| ### TransitionToSource {#SourceManager.TransitionToSource} |
| |
| <p>Transitions to the specified source when playback of the current source |
| reaches transition_pts. The new source starts playback at start_pts. If |
| a transition is already pending, it will be discarded in favor of the new |
| transition.</p> |
| |
| #### Request {#SourceManager.TransitionToSource_Request} |
| |
| <table> |
| <tr><th>Name</th><th>Type</th></tr> |
| <tr> |
| <td><code>source</code></td> |
| <td> |
| <code><a class='link' href='#Source'>Source</a></code> |
| </td> |
| </tr> |
| <tr> |
| <td><code>transition_pts</code></td> |
| <td> |
| <code>int64</code> |
| </td> |
| </tr> |
| <tr> |
| <td><code>start_pts</code></td> |
| <td> |
| <code>int64</code> |
| </td> |
| </tr> |
| </table> |
| |
| |
| |
| ## **STRUCTS** |
| |
| ### PlayerStatus {#PlayerStatus data-text="PlayerStatus"} |
| *Defined in [fuchsia.media.playback/player.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.media.playback/player.fidl;l=75)* |
| <p>Player status information.</p> |
| |
| <table> |
| <tr><th>Field</th><th>Type</th><th>Description</th><th>Default</th></tr> |
| <tr id="PlayerStatus.duration"> |
| <td><code>duration</code></td> |
| <td> |
| <code><a class='link' href='../zx/'>zx</a>/<a class='link' href='../zx/#duration'>duration</a></code> |
| </td> |
| <td><p>Duration of the content.</p> |
| </td> |
| <td>No default</td> |
| </tr> |
| <tr id="PlayerStatus.can_pause"> |
| <td><code>can_pause</code></td> |
| <td> |
| <code>bool</code> |
| </td> |
| <td><p>Whether the player can pause.</p> |
| </td> |
| <td>No default</td> |
| </tr> |
| <tr id="PlayerStatus.can_seek"> |
| <td><code>can_seek</code></td> |
| <td> |
| <code>bool</code> |
| </td> |
| <td><p>Whether the player can seek.</p> |
| </td> |
| <td>No default</td> |
| </tr> |
| <tr id="PlayerStatus.has_audio"> |
| <td><code>has_audio</code></td> |
| <td> |
| <code>bool</code> |
| </td> |
| <td><p>Whether the source has an audio stream.</p> |
| </td> |
| <td>No default</td> |
| </tr> |
| <tr id="PlayerStatus.has_video"> |
| <td><code>has_video</code></td> |
| <td> |
| <code>bool</code> |
| </td> |
| <td><p>Whether the source has a video stream.</p> |
| </td> |
| <td>No default</td> |
| </tr> |
| <tr id="PlayerStatus.ready"> |
| <td><code>ready</code></td> |
| <td> |
| <code>bool</code> |
| </td> |
| <td><p>Indicates whether the player is ready to play. After |
| <code>SetFileSource</code> or <code>SourceManager.SetSource</code> is called, this value is |
| false until the player is fully prepared to play the content from the |
| source.</p> |
| </td> |
| <td>No default</td> |
| </tr> |
| <tr id="PlayerStatus.metadata"> |
| <td><code>metadata</code></td> |
| <td> |
| <code><a class='link' href='../fuchsia.media/'>fuchsia.media</a>/<a class='link' href='../fuchsia.media/#Metadata'>Metadata</a>?</code> |
| </td> |
| <td></td> |
| <td>No default</td> |
| </tr> |
| <tr id="PlayerStatus.problem"> |
| <td><code>problem</code></td> |
| <td> |
| <code><a class='link' href='#Problem'>Problem</a>?</code> |
| </td> |
| <td><p>Indicates a problem preventing intended operation.</p> |
| </td> |
| <td>No default</td> |
| </tr> |
| <tr id="PlayerStatus.audio_connected"> |
| <td><code>audio_connected</code></td> |
| <td> |
| <code>bool</code> |
| </td> |
| <td><p>Indicates whether an audio stream is currently connected for rendering. |
| This value will be false if <code>has_audio</code> is false or if the audio stream |
| type isn't supported.</p> |
| </td> |
| <td>No default</td> |
| </tr> |
| <tr id="PlayerStatus.video_connected"> |
| <td><code>video_connected</code></td> |
| <td> |
| <code>bool</code> |
| </td> |
| <td><p>Indicates whether a video stream is currently connected for rendering. |
| This value will be false if <code>has_video</code> is false or if the video stream |
| type isn't supported.</p> |
| </td> |
| <td>No default</td> |
| </tr> |
| <tr id="PlayerStatus.video_size"> |
| <td><code>video_size</code></td> |
| <td> |
| <code><a class='link' href='../fuchsia.math/'>fuchsia.math</a>/<a class='link' href='../fuchsia.math/#Size'>Size</a>?</code> |
| </td> |
| <td><p>Size of the video currently being produced. This value will be null if |
| the video size is currently unknown.</p> |
| </td> |
| <td>No default</td> |
| </tr> |
| <tr id="PlayerStatus.pixel_aspect_ratio"> |
| <td><code>pixel_aspect_ratio</code></td> |
| <td> |
| <code><a class='link' href='../fuchsia.math/'>fuchsia.math</a>/<a class='link' href='../fuchsia.math/#Size'>Size</a>?</code> |
| </td> |
| <td><p>Relative dimensions of a video pixel. This value will be null if the |
| pixel aspect ratio is currently unknown.</p> |
| </td> |
| <td>No default</td> |
| </tr> |
| <tr id="PlayerStatus.timeline_function"> |
| <td><code>timeline_function</code></td> |
| <td> |
| <code><a class='link' href='../fuchsia.media/'>fuchsia.media</a>/<a class='link' href='../fuchsia.media/#TimelineFunction'>TimelineFunction</a>?</code> |
| </td> |
| <td><p>Function translating local time to presentation time. This value will be |
| null if the timeline function is currently undefined.</p> |
| </td> |
| <td>No default</td> |
| </tr> |
| <tr id="PlayerStatus.end_of_stream"> |
| <td><code>end_of_stream</code></td> |
| <td> |
| <code>bool</code> |
| </td> |
| <td><p>Indicates whether presentation for all streams has reached end-of-stream.</p> |
| </td> |
| <td>No default</td> |
| </tr> |
| </table> |
| |
| ### Problem {#Problem data-text="Problem"} |
| *Defined in [fuchsia.media.playback/problem.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.media.playback/problem.fidl;l=16)* |
| <p>Models a problem preventing intended operation.</p> |
| <p>A <code>Problem</code> is generally surfaced as part of a component's status, probably |
| as an optional field. Absence of a <code>Problem</code> means that nothing is preventing |
| intended operation. When a problem is exposed, the client can take action |
| automatically or present relevant UI. If a problem can be resolved by some |
| action, the client may take that action automatically or enlist the user |
| somehow in the resolution. In either case, the problem goes away when the |
| issue that caused it to be exposed is resolved. By design, there is no |
| general means of dismissing a problem.</p> |
| |
| <table> |
| <tr><th>Field</th><th>Type</th><th>Description</th><th>Default</th></tr> |
| <tr id="Problem.type"> |
| <td><code>type</code></td> |
| <td> |
| <code>string</code> |
| </td> |
| <td><p>The type of problem. This is a string for extensibility.</p> |
| </td> |
| <td>No default</td> |
| </tr> |
| <tr id="Problem.details"> |
| <td><code>details</code></td> |
| <td> |
| <code>string?</code> |
| </td> |
| <td><p>Type-dependent details.</p> |
| </td> |
| <td>No default</td> |
| </tr> |
| </table> |
| |
| ### SourceStatus {#SourceStatus data-text="SourceStatus"} |
| *Defined in [fuchsia.media.playback/source_manager.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.media.playback/source_manager.fidl;l=108)* |
| <p>Source status information.</p> |
| |
| <table> |
| <tr><th>Field</th><th>Type</th><th>Description</th><th>Default</th></tr> |
| <tr id="SourceStatus.duration"> |
| <td><code>duration</code></td> |
| <td> |
| <code><a class='link' href='../zx/'>zx</a>/<a class='link' href='../zx/#duration'>duration</a></code> |
| </td> |
| <td><p>Duration of the content.</p> |
| </td> |
| <td>No default</td> |
| </tr> |
| <tr id="SourceStatus.can_pause"> |
| <td><code>can_pause</code></td> |
| <td> |
| <code>bool</code> |
| </td> |
| <td><p>Whether the source can pause.</p> |
| </td> |
| <td>No default</td> |
| </tr> |
| <tr id="SourceStatus.can_seek"> |
| <td><code>can_seek</code></td> |
| <td> |
| <code>bool</code> |
| </td> |
| <td><p>Whether the source can seek.</p> |
| </td> |
| <td>No default</td> |
| </tr> |
| <tr id="SourceStatus.has_audio"> |
| <td><code>has_audio</code></td> |
| <td> |
| <code>bool</code> |
| </td> |
| <td><p>Whether the source has an audio stream.</p> |
| </td> |
| <td>No default</td> |
| </tr> |
| <tr id="SourceStatus.has_video"> |
| <td><code>has_video</code></td> |
| <td> |
| <code>bool</code> |
| </td> |
| <td><p>Whether the source has a video stream.</p> |
| </td> |
| <td>No default</td> |
| </tr> |
| <tr id="SourceStatus.ready"> |
| <td><code>ready</code></td> |
| <td> |
| <code>bool</code> |
| </td> |
| <td><p>Indicates whether the source is ready. A true value signals that the |
| content has been probed and there are no known problems with it.</p> |
| </td> |
| <td>No default</td> |
| </tr> |
| <tr id="SourceStatus.metadata"> |
| <td><code>metadata</code></td> |
| <td> |
| <code><a class='link' href='../fuchsia.media/'>fuchsia.media</a>/<a class='link' href='../fuchsia.media/#Metadata'>Metadata</a>?</code> |
| </td> |
| <td><p>Describes the media.</p> |
| </td> |
| <td>No default</td> |
| </tr> |
| <tr id="SourceStatus.problem"> |
| <td><code>problem</code></td> |
| <td> |
| <code><a class='link' href='#Problem'>Problem</a>?</code> |
| </td> |
| <td><p>Indicates a problem preventing intended operation. A null value |
| indicates that the source is functioning as intended.</p> |
| </td> |
| <td>No default</td> |
| </tr> |
| </table> |
| |
| |
| |
| ## **TABLES** |
| |
| ### PlayerOptions {#PlayerOptions data-text="PlayerOptions"} |
| |
| |
| *Defined in [fuchsia.media.playback/player.fidl](https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.media.playback/player.fidl;l=69)* |
| <p>Options used in <code>SetFileSourceWithOptions</code>.</p> |
| |
| <table> |
| <tr><th>Ordinal</th><th>Field</th><th>Type</th><th>Description</th></tr> |
| <tr id="PlayerOptions.silent"> |
| <td><h3 id="PlayerOptions.silent" class="add-link hide-from-toc">1</h3></td> |
| <td><code>silent</code></td> |
| <td> |
| <code>bool</code> |
| </td> |
| <td><p>When set to true, suppresses audio rendering. Default value false.</p> |
| </td> |
| </tr> |
| </table> |
| |
| |
| |
| |
| ## **CONSTANTS** |
| |
| <table> |
| <tr><th>Name</th><th>Value</th><th>Type</th><th>Description</th></tr> |
| <tr id="PROBLEM_ASSET_NOT_FOUND"> |
| <td><a href="https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.media.playback/problem.fidl;l=25">PROBLEM_ASSET_NOT_FOUND</a></td> |
| <td><code>fuchsia.media.playback.AssetNotFound</code></td> |
| <td><code>String</code></td> |
| <td></td> |
| </tr> |
| <tr id="PROBLEM_AUDIO_ENCODING_NOT_SUPPORTED"> |
| <td><a href="https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.media.playback/problem.fidl;l=27">PROBLEM_AUDIO_ENCODING_NOT_SUPPORTED</a></td> |
| <td><code>fuchsia.media.playback.AudioEncodingNotSupported</code></td> |
| <td><code>String</code></td> |
| <td></td> |
| </tr> |
| <tr id="PROBLEM_CONNECTION_FAILED"> |
| <td><a href="https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.media.playback/problem.fidl;l=31">PROBLEM_CONNECTION_FAILED</a></td> |
| <td><code>fuchsia.media.playback.ConnectionFailed</code></td> |
| <td><code>String</code></td> |
| <td></td> |
| </tr> |
| <tr id="PROBLEM_CONTAINER_NOT_SUPPORTED"> |
| <td><a href="https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.media.playback/problem.fidl;l=26">PROBLEM_CONTAINER_NOT_SUPPORTED</a></td> |
| <td><code>fuchsia.media.playback.ContainerNotSupported</code></td> |
| <td><code>String</code></td> |
| <td></td> |
| </tr> |
| <tr id="PROBLEM_INTERNAL"> |
| <td><a href="https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.media.playback/problem.fidl;l=24">PROBLEM_INTERNAL</a></td> |
| <td><code>fuchsia.media.playback.Internal</code></td> |
| <td><code>String</code></td> |
| <td></td> |
| </tr> |
| <tr id="PROBLEM_VIDEO_ENCODING_NOT_SUPPORTED"> |
| <td><a href="https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.media.playback/problem.fidl;l=29">PROBLEM_VIDEO_ENCODING_NOT_SUPPORTED</a></td> |
| <td><code>fuchsia.media.playback.VideoEncodingNotSupported</code></td> |
| <td><code>String</code></td> |
| <td></td> |
| </tr> |
| <tr id="UNKNOWN_SIZE"> |
| <td><a href="https://cs.opensource.google/fuchsia/fuchsia/+/main:sdk/fidl/fuchsia.media.playback/seeking_reader.fidl;l=33">UNKNOWN_SIZE</a></td> |
| <td> |
| <code>18446744073709551615</code> |
| </td> |
| <td><code>uint64</code></td> |
| <td><p>Distinguished value for the <code>size</code> value returned by <code>SeekingReader.Describe</code> |
| Indicating that the size isn't known.</p> |
| </td> |
| </tr> |
| </table> |