通訊協定
ElementarySource
定義於 fuchsia.media.playback/source_manager.fidl
Source 變體,可直接向播放器提供基本串流。
AddBinding
為這個 ElementarySource 新增繫結。使用這個方法,用戶端就能取得額外管道,即使管道已由 SourceManager.SetSource 呼叫使用,也能與這個 ElementarySource 通訊。
要求
| 名稱 | 類型 |
|---|---|
source_request |
server_end:ElementarySource
|
AddStream
新增基本串流。關閉 SimpleStreamSink 即可移除基本串流。ticks_per_second_numerator 和 ticks_per_second_denominator 表示 Streampacket 時間戳記值使用的單位。以奈秒為單位時,ticks_per_second_numerator 應為 1000000000,ticks_per_second_denominator 則應為 1。如要使用 48k 音訊的影格單位,ticks_per_second_numerator 應為 48000,ticks_per_second_denominator 應為 1。
要求
| 名稱 | 類型 |
|---|---|
type |
fuchsia.media/StreamType
|
ticks_per_second_numerator |
uint32
|
ticks_per_second_denominator |
uint32
|
sink_request |
server_end:fuchsia.media/SimpleStreamSink
|
OnStatusChanged
回應
| 名稱 | 類型 |
|---|---|
source_status |
SourceStatus
|
播放器
定義於 fuchsia.media.playback/player.fidl
播放媒體。
AddBinding
為這個播放器新增繫結。
要求
| 名稱 | 類型 |
|---|---|
player_request |
server_end:Player
|
BindGainControl
繫結至這個播放器的增益控制項。
要求
| 名稱 | 類型 |
|---|---|
gain_control_request |
server_end:fuchsia.media.audio/GainControl
|
CancelSourceTransition
取消待處理的轉換,並傳回來源。如果沒有待處理的轉換,要求管道就會關閉。
要求
| 名稱 | 類型 |
|---|---|
returned_source_request |
server_end:Source
|
CreateElementarySource
建立來源,讓用戶端向播放器提供獨立的基本串流。duration_ns、can_pause、can_seek 和中繼資料都包含在 SourceStatus 中,當播放器使用 ElementarySource 時,也會包含在 PlayerStatus 中。can_pause 和 can_seek 為 false 時,會限制播放器的功能。
要求
| 名稱 | 類型 |
|---|---|
duration_ns |
zx/Duration
|
can_pause |
bool
|
can_seek |
bool
|
metadata |
fuchsia.media/Metadata?
|
source_request |
server_end:ElementarySource
|
CreateFileSource
建立從檔案讀取的來源。
要求
| 名稱 | 類型 |
|---|---|
file_channel |
handle<channel>
|
source_request |
server_end:Source
|
CreateReaderSource
建立從 SeekingReader 讀取的來源。
要求
| 名稱 | 類型 |
|---|---|
seeking_reader |
client_end:SeekingReader
|
source_request |
server_end:Source
|
CreateView
建立影片檢視。
要求
| 名稱 | 類型 |
|---|---|
view_token |
fuchsia.ui.views/ViewToken
|
OnStatusChanged
在繫結後立即提供目前狀態,並在狀態變更時提供。
回應
| 名稱 | 類型 |
|---|---|
player_status |
PlayerStatus
|
暫停
暫停播放。
要求
<EMPTY>
播放
開始播放。
要求
<EMPTY>
搜尋
跳轉至指定位置 (以奈秒為單位)。
要求
| 名稱 | 類型 |
|---|---|
position |
int64
|
SetFileSource
設定要讀取的檔案管道。
要求
| 名稱 | 類型 |
|---|---|
file_channel |
handle<channel>
|
SetFileSourceWithOptions
設定要讀取的檔案管道。
要求
| 名稱 | 類型 |
|---|---|
file_channel |
handle<channel>
|
options |
PlayerOptions
|
SetPlaybackRate
設定播放器播放時使用的速率。rate 必須為正數。PlayerStatus 的 timeline_function 欄位會指出玩家遊玩時的實際速率。
要求
| 名稱 | 類型 |
|---|---|
playback_rate |
float32
|
SetSource
設定這個播放器要使用的來源。如果來源為空值,播放器會進入閒置狀態。
要求
| 名稱 | 類型 |
|---|---|
source |
client_end:Source?
|
TransitionToSource
當目前來源的播放達到 transition_pts 時,轉換至指定來源。新來源會從 start_pts 開始播放。如果已有待處理的轉換,系統會捨棄該轉換,改用新的轉換。
要求
| 名稱 | 類型 |
|---|---|
source |
client_end:Source
|
transition_pts |
int64
|
start_pts |
int64
|
SeekingReader
定義於 fuchsia.media.playback/seeking_reader.fidl
描述
要求
<EMPTY>
回應
| 名稱 | 類型 |
|---|---|
status |
zx/Result
|
size |
uint64
|
can_seek |
bool
|
ReadAt
要求
| 名稱 | 類型 |
|---|---|
position |
uint64
|
回應
| 名稱 | 類型 |
|---|---|
status |
zx/Result
|
socket |
handle<socket>?
|
來源
定義於 fuchsia.media.playback/source_manager.fidl
播放器可能使用的內容來源。
OnStatusChanged
回應
| 名稱 | 類型 |
|---|---|
source_status |
SourceStatus
|
SourceManager
定義於 fuchsia.media.playback/source_manager.fidl
代表播放器管理來源。
CancelSourceTransition
取消待處理的轉換,並傳回來源。如果沒有待處理的轉換,要求管道就會關閉。
要求
| 名稱 | 類型 |
|---|---|
returned_source_request |
server_end:Source
|
CreateElementarySource
建立來源,讓用戶端向播放器提供獨立的基本串流。duration_ns、can_pause、can_seek 和中繼資料都包含在 SourceStatus 中,當播放器使用 ElementarySource 時,也會包含在 PlayerStatus 中。can_pause 和 can_seek 為 false 時,會限制播放器的功能。
要求
| 名稱 | 類型 |
|---|---|
duration_ns |
zx/Duration
|
can_pause |
bool
|
can_seek |
bool
|
metadata |
fuchsia.media/Metadata?
|
source_request |
server_end:ElementarySource
|
CreateFileSource
建立從檔案讀取的來源。
要求
| 名稱 | 類型 |
|---|---|
file_channel |
handle<channel>
|
source_request |
server_end:Source
|
CreateReaderSource
建立從 SeekingReader 讀取的來源。
要求
| 名稱 | 類型 |
|---|---|
seeking_reader |
client_end:SeekingReader
|
source_request |
server_end:Source
|
SetSource
設定這個播放器要使用的來源。如果來源為空值,播放器會進入閒置狀態。
要求
| 名稱 | 類型 |
|---|---|
source |
client_end:Source?
|
TransitionToSource
當目前來源的播放達到 transition_pts 時,轉換至指定來源。新來源會從 start_pts 開始播放。如果已有待處理的轉換,系統會捨棄該轉換,改用新的轉換。
要求
| 名稱 | 類型 |
|---|---|
source |
client_end:Source
|
transition_pts |
int64
|
start_pts |
int64
|
STRUCTS
PlayerStatus
定義於 fuchsia.media.playback/player.fidl
球員狀態資訊。
| 欄位 | 類型 | 說明 | 預設 |
|---|---|---|---|
duration |
zx/Duration
|
內容時間長度。 |
無預設值 |
can_pause |
bool
|
播放器是否可暫停。 |
無預設值 |
can_seek |
bool
|
播放器是否可跳轉。 |
無預設值 |
has_audio |
bool
|
來源是否有音訊串流。 |
無預設值 |
has_video |
bool
|
來源是否有影片串流。 |
無預設值 |
ready |
bool
|
指出播放器是否已準備好播放。呼叫 |
無預設值 |
metadata |
fuchsia.media/Metadata?
|
無預設值 | |
problem |
Problem?
|
表示發生問題,無法執行預期作業。 |
無預設值 |
audio_connected |
bool
|
指出音訊串流目前是否已連線,可進行轉譯。如果 |
無預設值 |
video_connected |
bool
|
指出目前是否已連結影片串流,可進行算繪。如果 |
無預設值 |
video_size |
fuchsia.math/Size?
|
目前製作的影片大小。如果目前無法得知影片大小,這個值會是空值。 |
無預設值 |
pixel_aspect_ratio |
fuchsia.math/Size?
|
影片像素的相對尺寸。如果目前不清楚像素顯示比例,這個值會是空值。 |
無預設值 |
timeline_function |
fuchsia.media/TimelineFunction?
|
將本地時間轉換為顯示時間的函式。如果時間軸函式目前未定義,這個值會是空值。 |
無預設值 |
end_of_stream |
bool
|
指出所有串流的播放是否已結束。 |
無預設值 |
問題
定義於 fuchsia.media.playback/problem.fidl
模擬導致無法執行預期作業的問題。
Problem 通常會做為元件狀態的一部分顯示,可能做為選用欄位。如果沒有 Problem,表示沒有任何因素會阻礙預期作業。發現問題時,用戶端可以自動採取行動或顯示相關 UI。如果問題可以透過某些動作解決,用戶端可能會自動採取該動作,或以某種方式讓使用者參與解決。無論是哪種情況,只要解決導致問題暴露的原因,問題就會消失。根據設計,沒有一般方法可以關閉問題。
| 欄位 | 類型 | 說明 | 預設 |
|---|---|---|---|
type |
string
|
問題類型。這是用於擴充性的字串。 |
無預設值 |
details |
string?
|
依類型而定的詳細資料。 |
無預設值 |
SourceStatus
定義於 fuchsia.media.playback/source_manager.fidl
來源狀態資訊。
| 欄位 | 類型 | 說明 | 預設 |
|---|---|---|---|
duration |
zx/Duration
|
內容時間長度。 |
無預設值 |
can_pause |
bool
|
來源是否可以暫停。 |
無預設值 |
can_seek |
bool
|
來源是否可跳轉。 |
無預設值 |
has_audio |
bool
|
來源是否有音訊串流。 |
無預設值 |
has_video |
bool
|
來源是否有影片串流。 |
無預設值 |
ready |
bool
|
指出來源是否已就緒。如果值為 true,表示內容已探測,且沒有已知問題。 |
無預設值 |
metadata |
fuchsia.media/Metadata?
|
說明媒體。 |
無預設值 |
problem |
Problem?
|
表示發生問題,導致無法執行預期作業。空值表示來源運作正常。 |
無預設值 |
TABLES
PlayerOptions
定義於 fuchsia.media.playback/player.fidl
SetFileSourceWithOptions 中使用的選項。
| 序數 | 欄位 | 類型 | 說明 |
|---|---|---|---|
1 |
silent |
bool
|
如果設為 true,系統會抑制音訊轉譯。預設值為 false。 |
常數
| 名稱 | 值 | 類型 | 說明 |
|---|---|---|---|
| PROBLEM_ASSET_NOT_FOUND | fuchsia.media.playback.AssetNotFound |
String |
|
| PROBLEM_AUDIO_ENCODING_NOT_SUPPORTED | fuchsia.media.playback.AudioEncodingNotSupported |
String |
|
| PROBLEM_CONNECTION_FAILED | fuchsia.media.playback.ConnectionFailed |
String |
|
| PROBLEM_CONTAINER_NOT_SUPPORTED | fuchsia.media.playback.ContainerNotSupported |
String |
|
| PROBLEM_INTERNAL | fuchsia.media.playback.Internal |
String |
|
| PROBLEM_VIDEO_ENCODING_NOT_SUPPORTED | fuchsia.media.playback.VideoEncodingNotSupported |
String |
|
| UNKNOWN_SIZE |
18446744073709551615
|
uint64 |
|