通訊協定
ActiveSession
在 fuchsia.media.sessions2/discovery.fidl 中定義的
用於在裝置上觀看目前進行中媒體工作階段的通訊協定。
目前進行中的媒體工作階段是最近的媒體工作階段 系統顯示「正在播放」保持狀態。
WatchActiveSession
觀看執行中的工作階段。我們會立即回應第一項要求 與目前執行中的工作階段相同一律將要求保留期間等待接收 回覆。
要求
<空白>
回應
| 名稱 | 類型 | 
|---|---|
| session | SessionControl? | 
探索
定義於 fuchsia.media.sessions2/discovery.fidl
「Discovery」會觀察已發布媒體工作階段的集合
並連接用戶端
ConnectToSession
會連線至 session_id 的 SessionControl (如有)。捨棄
其他指定管道
要求
| 名稱 | 類型 | 
|---|---|
| session_id | SessionId | 
| session_control_request | server_end<SessionControl> | 
WatchSessions
連線至以指定選項設定的工作階段看守工具。
要求
| 名稱 | 類型 | 
|---|---|
| watch_options | WatchOptions | 
| session_watcher | SessionsWatcher | 
ObserverDiscovery
定義於 fuchsia.media.sessions2/discovery.fidl
「ObserverDiscovery」會觀察已發布媒體工作階段的集合
,並在沒有播放控制項的情況下,將用戶端連至這些用戶端以進行觀察。
ConnectToSession
會連線至 session_id 的 SessionObserver (如有)。捨棄
其他指定管道
要求
| 名稱 | 類型 | 
|---|---|
| session_id | SessionId | 
| session_request | server_end<SessionObserver> | 
WatchSessions
連線至以指定選項設定的工作階段看守工具。
要求
| 名稱 | 類型 | 
|---|---|
| watch_options | WatchOptions | 
| sessions_watcher | SessionsWatcher | 
播放器
在 fuchsia.media.sessions2/player.fidl 中定義
Player 是媒體播放器的控制代碼。不支援的指令如下:
免人工管理。諮詢「PlaybackCapabilities」,該問題已傳送
指令。
BindVolumeControl
繫結至工作階段的控制和通知音量控制項。如果未啟用這個方法
其中缺少 HAS_GAIN_CONTROL 標記,表示支援這項功能
PlayerCapabilities,以 volume_control_request 傳遞的管道帳號代碼已關閉
以及服務本身
要求
| 名稱 | 類型 | 
|---|---|
| volume_control_request | server_end<fuchsia.media.audio/VolumeControl> | 
NextItem
將媒體變更為下一個項目 (例如播放清單中的下一首歌曲)。如果未啟用這個方法
其中缺少 CHANGE_TO_NEXT_ITEM 標記,表示支援這項功能
PlayerCapabilities,這個方法不會有任何作用。
要求
<空白>
暫停
暫停播放並保留媒體中的位置。如果系統不支援上述方法
如果 PlayerCapabilities 中沒有 PAUSE 標記,此方法就不會有任何作用。
要求
<空白>
播放
播放媒體。如果缺少 PLAY 指出不支援此方法
標記,PlayerCapabilities,這個方法就沒有作用。
要求
<空白>
PrevItem
將媒體變更為上一個項目。如果未啟用這個方法
其中不含 CHANGE_TO_PREV_ITEM 標記
PlayerCapabilities,這個方法不會有任何作用。
要求
<空白>
搜尋
跳轉到媒體中的特定位置。導入完全不須付費
如果位置超出範圍,則輸入錯誤狀態。position
是指從媒體開頭的偏移值。如果上述方法不支援這個方法
如果 PlayerCapabilities 中沒有 SEEK 標記,此方法就不會有任何作用。
要求
| 名稱 | 類型 | 
|---|---|
| position | zx/Duration | 
SetPlaybackRate
設定媒體的播放速率。這不會改變播放模式。如果這個方法
不支援 SET_PLAYBACK_RATE 標記中缺少的 SET_PLAYBACK_RATE 標記
PlayerCapabilities,這個方法不會有任何作用。
要求
| 名稱 | 類型 | 
|---|---|
| playback_rate | float32 | 
SetRepeatMode
將重複模式設為任一支援的重複模式。
這個方法是否生效,取決於 PlayerCapabilities 和 repeat_mode:
要求
| 名稱 | 類型 | 
|---|---|
| repeat_mode | RepeatMode | 
SetShuffleMode
設定隨機播放模式。如果缺少
PlayerCapabilities 中的 SHUFFLE 旗標,這個方法不會執行任何動作。
要求
| 名稱 | 類型 | 
|---|---|
| shuffle_on | bool | 
SkipForward
根據播放器的預設略過次數,向媒體略過內容。如果不支援這個方法
如 PlayerCapabilities 中缺少 SKIP_FORWARD 旗標,此方法
什麼都不做。
要求
<空白>
SkipReverse
根據播放器的預設略過金額,在媒體中略過元素。如果未啟用這個方法
從 PlayerCapabilities 中缺少 SKIP_REVERSE 旗標表示支援
此方法不會有任何作用。
要求
<空白>
停止
停止播放。工作階段應會關閉,
要求
<空白>
WatchInfoChange
使用懸掛的 get 模式取得淨玩家資訊變更。
要求
<空白>
回應
| 名稱 | 類型 | 
|---|---|
| player_info_delta | PlayerInfoDelta | 
PlayerControl
在 fuchsia.media.sessions2/player.fidl 中定義
媒體播放器的控制項,PlayerCapabilities 表示應用程式中有哪些方法
播放器可支援的通訊協定。由於功能是動態的,用戶端無法
一律知道方法呼叫觸及服務時將支援哪些功能
呼叫不支援的方法會直接忽略。一般來說,客戶
預期方法能夠運作,除非播放器表示能持續支援。
BindVolumeControl
繫結至工作階段的控制和通知音量控制項。如果未啟用這個方法
其中缺少 HAS_GAIN_CONTROL 標記,表示支援這項功能
PlayerCapabilities,以 volume_control_request 傳遞的管道帳號代碼已關閉
以及服務本身
要求
| 名稱 | 類型 | 
|---|---|
| volume_control_request | server_end<fuchsia.media.audio/VolumeControl> | 
NextItem
將媒體變更為下一個項目 (例如播放清單中的下一首歌曲)。如果未啟用這個方法
其中缺少 CHANGE_TO_NEXT_ITEM 標記,表示支援這項功能
PlayerCapabilities,這個方法不會有任何作用。
要求
<空白>
暫停
暫停播放並保留媒體中的位置。如果系統不支援上述方法
如果 PlayerCapabilities 中沒有 PAUSE 標記,此方法就不會有任何作用。
要求
<空白>
播放
播放媒體。如果缺少 PLAY 指出不支援此方法
標記,PlayerCapabilities,這個方法就沒有作用。
要求
<空白>
PrevItem
將媒體變更為上一個項目。如果未啟用這個方法
其中不含 CHANGE_TO_PREV_ITEM 標記
PlayerCapabilities,這個方法不會有任何作用。
要求
<空白>
搜尋
跳轉到媒體中的特定位置。導入完全不須付費
如果位置超出範圍,則輸入錯誤狀態。position
是指從媒體開頭的偏移值。如果上述方法不支援這個方法
如果 PlayerCapabilities 中沒有 SEEK 標記,此方法就不會有任何作用。
要求
| 名稱 | 類型 | 
|---|---|
| position | zx/Duration | 
SetPlaybackRate
設定媒體的播放速率。這不會改變播放模式。如果這個方法
不支援 SET_PLAYBACK_RATE 標記中缺少的 SET_PLAYBACK_RATE 標記
PlayerCapabilities,這個方法不會有任何作用。
要求
| 名稱 | 類型 | 
|---|---|
| playback_rate | float32 | 
SetRepeatMode
將重複模式設為任一支援的重複模式。
這個方法是否生效,取決於 PlayerCapabilities 和 repeat_mode:
要求
| 名稱 | 類型 | 
|---|---|
| repeat_mode | RepeatMode | 
SetShuffleMode
設定隨機播放模式。如果缺少
PlayerCapabilities 中的 SHUFFLE 旗標,這個方法不會執行任何動作。
要求
| 名稱 | 類型 | 
|---|---|
| shuffle_on | bool | 
SkipForward
根據播放器的預設略過次數,向媒體略過內容。如果不支援這個方法
如 PlayerCapabilities 中缺少 SKIP_FORWARD 旗標,此方法
什麼都不做。
要求
<空白>
SkipReverse
根據播放器的預設略過金額,在媒體中略過元素。如果未啟用這個方法
從 PlayerCapabilities 中缺少 SKIP_REVERSE 旗標表示支援
此方法不會有任何作用。
要求
<空白>
停止
停止播放。工作階段應會關閉,
要求
<空白>
出版商
定義於 fuchsia.media.sessions2/publisher.fidl
Publisher 會發布媒體播放器,提高曝光度,
由擁有權限的客戶控制。
發布
要求
| 名稱 | 類型 | 
|---|---|
| player | Player | 
| registration | PlayerRegistration | 
回應
| 名稱 | 類型 | 
|---|---|
| session_id | SessionId | 
SessionControl
在 fuchsia.media.sessions2/discovery.fidl 中定義的
控制媒體工作階段及查看其狀態。
如果媒體工作階段停止,管道就會關閉。
BindVolumeControl
繫結至工作階段的控制和通知音量控制項。
要求
| 名稱 | 類型 | 
|---|---|
| volume_control_request | server_end<fuchsia.media.audio/VolumeControl> | 
NextItem
將媒體變更為下一個項目 (例如播放清單中的下一首歌曲)。
要求
<空白>
暫停
暫停播放並保留媒體中的位置
要求
<空白>
播放
播放媒體。
要求
<空白>
PrevItem
將媒體變更為上一個項目。
要求
<空白>
搜尋
跳轉到媒體中的特定位置。導入完全不須付費
如果位置超出範圍,則輸入錯誤狀態。position
是指從媒體開頭的偏移值。
要求
| 名稱 | 類型 | 
|---|---|
| position | zx/Duration | 
SetPlaybackRate
設定媒體的播放速率。這項操作不會改變 播放模式。
要求
| 名稱 | 類型 | 
|---|---|
| playback_rate | float32 | 
SetRepeatMode
將重複模式設為任一支援的重複模式。
要求
| 名稱 | 類型 | 
|---|---|
| repeat_mode | RepeatMode | 
SetShuffleMode
設定隨機播放模式。
要求
| 名稱 | 類型 | 
|---|---|
| shuffle_on | bool | 
SkipForward
根據播放器的預設略過次數,向媒體略過內容。
要求
<空白>
SkipReverse
根據播放器的預設略過金額,在媒體中略過元素。
要求
<空白>
停止
停止播放。工作階段應會關閉,
要求
<空白>
WatchStatus
查看工作階段狀態。離開要求,以便收到回覆 工作階段狀態就會改變第一項要求將立即透過以下方式回應: 目前狀態
要求
<空白>
回應
| 名稱 | 類型 | 
|---|---|
| session_info_delta | SessionInfoDelta | 
SessionObserver
定義於 fuchsia.media.sessions2/discovery.fidl
查看媒體工作階段的狀態。
如果媒體工作階段停止,管道就會關閉。
WatchStatus
查看工作階段狀態。離開要求,以便收到回覆 工作階段狀態就會改變第一項要求將立即透過以下方式回應: 目前狀態
要求
<空白>
回應
| 名稱 | 類型 | 
|---|---|
| session_info_delta | SessionInfoDelta | 
SessionsWatcher
定義於 fuchsia.media.sessions2/discovery.fidl
「SessionsWatcher」會觀看已發布的工作階段集合。
SessionRemoved
將工作階段從已註冊的工作階段中移除時,註冊資料庫服務會呼叫此方法 集合。
SessionsWatcher 必須回覆確認已收到工作階段移除通知。
沒有收到回覆的欠缺看護者最終會中斷連線。
要求
| 名稱 | 類型 | 
|---|---|
| session_id | SessionId | 
回應
<空白>
SessionUpdated
在工作階段更新時,登錄服務會呼叫此方法。首次連線時, 系統會視需求多次呼叫此項目,以傳達 這份報告說明隨著 AI 影響力逐步擴大 採行負責任的 AI 技術做法能帶來的價值
SessionsWatcher 必須回覆確認收到工作階段資訊差異。
沒有收到回覆的欠缺看護者最終會中斷連線。
要求
| 名稱 | 類型 | 
|---|---|
| session_id | SessionId | 
| session_info_delta | SessionInfoDelta | 
回應
<空白>
結構
ImageSizeVariant
定義於 fuchsia.media.sessions2/images.fidl
特定大小的圖片變化版本。
| 欄位 | 類型 | 說明 | 預設 | 
|---|---|---|---|
| url | fuchsia.url/Url | 無預設 | |
| width | uint32 | 無預設 | |
| height | uint32 | 無預設 | 
ENUMS
ContentType 嚴格
類型:uint32
在 fuchsia.media.sessions2/player.fidl 中定義
播放的內容類型,應設為最大 以及適用的值
| 名稱 | 值 | 說明 | 
|---|---|---|
| OTHER | 1 | 內容不符合任何其他值。 | 
| 音訊 | 2 | 不屬於音樂的純音訊內容。 | 
| 影片 | 3 | 不屬於電視節目或電影的純影片或影音內容。 | 
| 音樂 | 4 | 純音訊內容通常可視為音樂。 | 
| TV_SHOW | 5 | 屬於電視或串流影集的影音內容。 | 
| 電影 | 6 | 含有精選電影的影音內容。 | 
錯誤 strict
類型:uint32
在 fuchsia.media.sessions2/player.fidl 中定義
| 名稱 | 值 | 說明 | 
|---|---|---|
| OTHER | 1 | 
中斷行為嚴格
類型:uint32
在 fuchsia.media.sessions2/player.fidl 中定義
播放器在 受到鬧鐘幹擾 (例如被鬧鐘幹擾)
系統會利用玩家的情形偵測中斷情形。
根據預設,幹擾行為為 NONE。
| 名稱 | 值 | 說明 | 
|---|---|---|
| 無 | 0 | 中斷對玩家沒有影響 即使有聲音變差,影片仍可能繼續播放。 | 
| 暫停 | 1 | 這種行為在播放中斷時,播放器 暫停到中斷為止 並不遺漏任何內容 | 
MediaImageType 嚴格
類型:uint32
定義於 fuchsia.media.sessions2/images.fidl
| 名稱 | 值 | 說明 | 
|---|---|---|
| 原圖 | 0 | 播放媒體的圖片。 | 
| SOURCE_ICON | 1 | 播放媒體來源的圖示 (例如播放器或 以及串流服務)。 | 
PlayerState 嚴格
類型:uint32
在 fuchsia.media.sessions2/player.fidl 中定義
媒體播放器的狀態。
| 名稱 | 值 | 說明 | 
|---|---|---|
| 閒置 | 0 | 工作階段沒有相關媒體時的初始狀態。 | 
| 播放中 | 1 | 播放器正在播放內容。 | 
| 已暫停 | 2 | 播放器已暫停。 | 
| 緩衝處理中 | 3 | 播放器會播放,但因緩衝處理而暫停。 | 
| 錯誤 | 4 | 玩家無法從該狀態復原,且即將關閉。 | 
RepeatMode 嚴格
類型:uint32
在 fuchsia.media.sessions2/player.fidl 中定義
重複播放目前媒體的模式。
| 名稱 | 值 | 說明 | 
|---|---|---|
| 關閉 | 0 | 不會重複。 | 
| 群組 | 1 | 重複相關媒體群組 (例如播放清單)。 | 
| 單曲 | 2 | 重複播放目前正在播放的媒體。 | 
資料表
MediaImage
定義於 fuchsia.media.sessions2/images.fidl
播放媒體的圖片。
| Ordinal | 欄位 | 類型 | 說明 | 
|---|---|---|---|
| 1 | image_type | MediaImageType | |
| 2 | sizes | vector<ImageSizeVariant>[16] | 圖片的可用版本。 | 
PlayerCapabilities
在 fuchsia.media.sessions2/player.fidl 中定義
說明玩家的能力,
| Ordinal | 欄位 | 類型 | 說明 | 
|---|---|---|---|
| 1 | flags | PlayerCapabilityFlags | 指出播放器支援的功能。請參閱  | 
PlayerInfoDelta
在 fuchsia.media.sessions2/player.fidl 中定義
發出時,應設定已變更的欄位。 首次向新客戶發出傳送要求時應為數據匯報。
| Ordinal | 欄位 | 類型 | 說明 | 
|---|---|---|---|
| 1 | local | bool | 將媒體進入我們裝置網路的進入點 本機機器如果這是裝置串流,則傳回 true 錯誤或遺漏。如果這部機器只是 接收音訊串流,擔任說話者。 如果省略此值,此值會保持不變。一開始,這個值為  | 
| 2 | player_status | PlayerStatus | 播放器的狀態。 如果省略,則所有組成值皆會保持不變。如果  | 
| 3 | metadata | fuchsia.media/Metadata | 播放中媒體的中繼資料。 如果省略,中繼資料則不會變更。一開始沒有中繼資料。 | 
| 4 | media_images | vector<MediaImage>[16] | 與播放媒體相關的圖片。 省略時,媒體圖片則不會改變。空白 向量表示沒有任何媒體圖片,而這也是初始狀態。 | 
| 5 | player_capabilities | PlayerCapabilities | 玩家的能力。 如果省略,功能則維持不變。系統一開始會假設玩家沒有任何 即便沒有技術背景,也能因這些工具的功能而受益 | 
| 6 | interruption_behavior | InterruptionBehavior | 玩家受到干擾時想參與的行為 由某個物件發出,例如鬧鐘 省略時,行為則維持不變。初始值為  | 
PlayerRegistration
定義於 fuchsia.media.sessions2/publisher.fidl
媒體工作階段登錄服務所需的一切資訊, 註冊玩家,讓用戶端可觀察玩家的狀態和控制項 基礎架構
| Ordinal | 欄位 | 類型 | 說明 | 
|---|---|---|---|
| 1 | domain | Domain | 玩家所在的網域。如果是原生,請取消設定 Fuchsia 網域。 | 
| 2 | usage | fuchsia.media/AudioRenderUsage | 播放器的音訊輸出用途。根據預設,系統會假設 設為 MEDIA | 
PlayerStatus
在 fuchsia.media.sessions2/player.fidl 中定義
媒體播放器的狀態。
| Ordinal | 欄位 | 類型 | 說明 | 
|---|---|---|---|
| 1 | duration | zx/Duration | 播放媒體的總時間長度。 如果省略這個值,則持續時間不明、不適用或維持不變。一開始 系統會假設時間長度為未知。 | 
| 2 | player_state | PlayerState | 玩家狀態。 如果省略這個欄位,此值會保持不變。初始值為  | 
| 3 | timeline_function | fuchsia.media/TimelineFunction | 這個播放函式會描述
以  如果省略這個欄位,此值會保持不變。一開始, | 
| 4 | repeat_mode | RepeatMode | 播放器的重複模式。 如果省略這個欄位,此值會保持不變。初始值為  | 
| 5 | shuffle_on | bool | 播放器的隨機播放模式。 如果省略這個欄位,此值會保持不變。一開始,值為 false。 | 
| 6 | content_type | ContentType | 播放的內容類型。 如果省略這個欄位,此值會保持不變。初始值為  | 
| 7 | error | Error | 播放器可能發生錯誤。 除非發生錯誤,否則系統會略過這個欄位。一旦指出錯誤,就無法 | 
| 8 | is_live | bool | 播放播放的媒體 (例如電視或直播)。 如果省略這個欄位,此值會保持不變。一開始,值為 false。 | 
SessionInfoDelta
在 fuchsia.media.sessions2/discovery.fidl 中定義的
SessionInfoDelta 提供媒體工作階段的說明。
| Ordinal | 欄位 | 類型 | 說明 | 
|---|---|---|---|
| 1 | domain | Domain | 發生工作階段的網域。網域指的是一組 可互相相容的媒體目標和工作階段;網站上的工作階段可能會 會在相同網域的目標上播放 一律提供這個欄位。 | 
| 2 | is_local | bool | 媒體播放來源是否在這部裝置上。 這個欄位只有在已知的情況下才會顯示。 | 
| 3 | is_locally_active | bool | 如果這是  一律提供這個欄位。 | 
| 4 | player_status | PlayerStatus | 播放器的狀態。 一律提供這個欄位。 | 
| 5 | metadata | fuchsia.media/Metadata | 說明媒體工作階段的中繼資料。 一律提供這個欄位。 | 
| 6 | media_images | vector<MediaImage> | 與媒體或其來源相關的圖片。 一律提供這個欄位。 | 
| 7 | player_capabilities | PlayerCapabilities | 媒體播放器實作的功能。 一律提供這個欄位。 | 
WatchOptions
在 fuchsia.media.sessions2/discovery.fidl 中定義的
用來指定觀看集合時要觀看哪些工作階段的選項。
觀看組合是可滿足所有選項的一組工作階段。
| Ordinal | 欄位 | 類型 | 說明 | 
|---|---|---|---|
| 1 | only_active | bool | 只觀看進行中的工作階段。如未設定,會觀看所有影片。 | 
| 2 | allowed_sessions | vector<uint64>[1000] | 僅限觀看含有這些許可清單 ID 的工作階段。如未設定,會觀看所有影片。 | 
商業智慧
PlayerCapabilityFlags 嚴格
類型:uint32
在 fuchsia.media.sessions2/player.fidl 中定義
| 名稱 | 值 | 說明 | 
|---|---|---|
| 玩遊戲 | 1 | 如果已設定,玩家可以 | 
| 暫停 | 4 | 如果已設定,玩家可以 | 
| 查看 | 8 | 如果已設定,玩家可以 | 
| SKIP_FORWARD | 16 | 如果已設定,玩家可以 | 
| SKIP_REVERSE | 32 | 如果已設定,玩家可以 | 
| 隨機播放 | 64 | 如果設定了這個屬性,播放器就能隨機播放媒體。 | 
| CHANGE_TO_NEXT_ITEM | 128 | |
| CHANGE_TO_PREV_ITEM | 256 | |
| HAS_GAIN_CONTROL | 512 | 如果已設定,玩家可以 | 
| REPEAT_GROUPS | 1024 | 如果已設定,玩家將可以重複分組。 | 
| REPEAT_SINGLE | 2048 | 如果設定完成,播放器可能會重複播放單一媒體項目。 | 
| SET_PLAYBACK_RATE | 4096 | 如果已設定,播放器可接受播放速率變更。 | 
ALIASES
| 名稱 | 值 | 說明 | 
|---|---|---|
| 網域 | string[1000] | 網域可用來識別工作階段發生的生態系統。 網域格式應為 
 | 
| SessionId | uint64 |