fuchsia.media.sessions2

新增:7

通訊協定

ActiveSession

fuchsia.media.sessions2/discovery.fidl 中定義的

用於在裝置上觀看目前進行中媒體工作階段的通訊協定。

目前進行中的媒體工作階段是最近的媒體工作階段 系統顯示「正在播放」保持狀態。

WatchActiveSession

觀看執行中的工作階段。我們會立即回應第一項要求 與目前執行中的工作階段相同一律將要求保留期間等待接收 回覆。

要求

<空白>

回應

名稱類型
session SessionControl?

探索

定義於 fuchsia.media.sessions2/discovery.fidl

Discovery」會觀察已發布媒體工作階段的集合 並連接用戶端

ConnectToSession

會連線至 session_idSessionControl (如有)。捨棄 其他指定管道

要求

名稱類型
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_idSessionObserver (如有)。捨棄 其他指定管道

要求

名稱類型
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

將重複模式設為任一支援的重複模式。 這個方法是否生效,取決於 PlayerCapabilitiesrepeat_mode

  • 系統一律支援 OFF
  • GROUP 需要 REPEAT_GROUPS 能力,否則會遭到忽略。
  • SINGLE 需要 REPEAT_SINGLE 能力,否則會遭到忽略。

要求

名稱類型
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

將重複模式設為任一支援的重複模式。 這個方法是否生效,取決於 PlayerCapabilitiesrepeat_mode

  • 系統一律支援 OFF
  • GROUP 需要 REPEAT_GROUPS 能力,否則會遭到忽略。
  • SINGLE 需要 REPEAT_SINGLE 能力,否則會遭到忽略。

要求

名稱類型
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 中定義

播放的內容類型,應設為最大 以及適用的值

名稱說明
1

內容不符合任何其他值。

2

不屬於音樂的純音訊內容。

3

不屬於電視節目或電影的純影片或影音內容。

4

純音訊內容通常可視為音樂。

5

屬於電視或串流影集的影音內容。

6

含有精選電影的影音內容。

錯誤 strict

類型:uint32

fuchsia.media.sessions2/player.fidl 中定義

名稱說明
1

中斷行為嚴格

類型:uint32

fuchsia.media.sessions2/player.fidl 中定義

播放器在 受到鬧鐘幹擾 (例如被鬧鐘幹擾)

系統會利用玩家的情形偵測中斷情形。

根據預設,幹擾行為為 NONE

名稱說明
0

中斷對玩家沒有影響 即使有聲音變差,影片仍可能繼續播放。

1

這種行為在播放中斷時,播放器 暫停到中斷為止 並不遺漏任何內容

MediaImageType 嚴格

類型:uint32

定義於 fuchsia.media.sessions2/images.fidl

名稱說明
0

播放媒體的圖片。

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欄位類型說明
image_type MediaImageType
sizes vector<ImageSizeVariant>[16]

圖片的可用版本。

PlayerCapabilities

fuchsia.media.sessions2/player.fidl 中定義

說明玩家的能力,

Ordinal欄位類型說明
flags PlayerCapabilityFlags

指出播放器支援的功能。請參閱 PlayerControl: 詳細資料。

PlayerInfoDelta

fuchsia.media.sessions2/player.fidl 中定義

發出時,應設定已變更的欄位。 首次向新客戶發出傳送要求時應為數據匯報。

Ordinal欄位類型說明
local bool

將媒體進入我們裝置網路的進入點 本機機器如果這是裝置串流,則傳回 true 錯誤或遺漏。如果這部機器只是 接收音訊串流,擔任說話者。

如果省略此值,此值會保持不變。一開始,這個值為 true

player_status PlayerStatus

播放器的狀態。

如果省略,則所有組成值皆會保持不變。如果 PlayerStatus 中的欄位是 則此屬性的值會保持不變。系統會指出 中每個欄位的初始值 player_status

metadata fuchsia.media/Metadata

播放中媒體的中繼資料。

如果省略,中繼資料則不會變更。一開始沒有中繼資料。

media_images vector<MediaImage>[16]

與播放媒體相關的圖片。

省略時,媒體圖片則不會改變。空白 向量表示沒有任何媒體圖片,而這也是初始狀態。

player_capabilities PlayerCapabilities

玩家的能力。

如果省略,功能則維持不變。系統一開始會假設玩家沒有任何 即便沒有技術背景,也能因這些工具的功能而受益

interruption_behavior InterruptionBehavior

玩家受到干擾時想參與的行為 由某個物件發出,例如鬧鐘

省略時,行為則維持不變。初始值為 NONE

PlayerRegistration

定義於 fuchsia.media.sessions2/publisher.fidl

媒體工作階段登錄服務所需的一切資訊, 註冊玩家,讓用戶端可觀察玩家的狀態和控制項 基礎架構

Ordinal欄位類型說明
domain Domain

玩家所在的網域。如果是原生,請取消設定 Fuchsia 網域。

usage fuchsia.media/AudioRenderUsage

播放器的音訊輸出用途。根據預設,系統會假設 設為 MEDIA

PlayerStatus

fuchsia.media.sessions2/player.fidl 中定義

媒體播放器的狀態。

Ordinal欄位類型說明
duration zx/Duration

播放媒體的總時間長度。

如果省略這個值,則持續時間不明、不適用或維持不變。一開始 系統會假設時間長度為未知。

player_state PlayerState

玩家狀態。

如果省略這個欄位,此值會保持不變。初始值為 IDLE

timeline_function fuchsia.media/TimelineFunction

這個播放函式會描述 以 CLOCK_MONOTONIC 函式的形式透過媒體播放。

如果省略這個欄位,此值會保持不變。一開始,reference_delta 是 1, 其餘組成欄位為 0

repeat_mode RepeatMode

播放器的重複模式。

如果省略這個欄位,此值會保持不變。初始值為 NONE

shuffle_on bool

播放器的隨機播放模式。

如果省略這個欄位,此值會保持不變。一開始,值為 false。

content_type ContentType

播放的內容類型。

如果省略這個欄位,此值會保持不變。初始值為 OTHER

error Error

播放器可能發生錯誤。

除非發生錯誤,否則系統會略過這個欄位。一旦指出錯誤,就無法

is_live bool

播放播放的媒體 (例如電視或直播)。

如果省略這個欄位,此值會保持不變。一開始,值為 false。

SessionInfoDelta

fuchsia.media.sessions2/discovery.fidl 中定義的

SessionInfoDelta 提供媒體工作階段的說明。

Ordinal欄位類型說明
domain Domain

發生工作階段的網域。網域指的是一組 可互相相容的媒體目標和工作階段;網站上的工作階段可能會 會在相同網域的目標上播放

一律提供這個欄位。

is_local bool

媒體播放來源是否在這部裝置上。

這個欄位只有在已知的情況下才會顯示。

is_locally_active bool

如果這是 true,表示播放作業會在裝置本機進行。 裝置喇叭正在播放,正在透過遠端喇叭播放 但實際上並非如此只有在工作階段恢復時才能設定此項目。暫停的 工作階段未運作。

一律提供這個欄位。

player_status PlayerStatus

播放器的狀態。

一律提供這個欄位。

metadata fuchsia.media/Metadata

說明媒體工作階段的中繼資料。

一律提供這個欄位。

media_images vector<MediaImage>

與媒體或其來源相關的圖片。

一律提供這個欄位。

player_capabilities PlayerCapabilities

媒體播放器實作的功能。

一律提供這個欄位。

WatchOptions

fuchsia.media.sessions2/discovery.fidl 中定義的

用來指定觀看集合時要觀看哪些工作階段的選項。

觀看組合是可滿足所有選項的一組工作階段。

Ordinal欄位類型說明
only_active bool

只觀看進行中的工作階段。如未設定,會觀看所有影片。

allowed_sessions vector<uint64>[1000]

僅限觀看含有這些許可清單 ID 的工作階段。如未設定,會觀看所有影片。

商業智慧

PlayerCapabilityFlags 嚴格

類型:uint32

fuchsia.media.sessions2/player.fidl 中定義

名稱說明
1

如果已設定,玩家可以Play()

4

如果已設定,玩家可以Pause()

8

如果已設定,玩家可以Seek()

16

如果已設定,玩家可以SkipForward()

32

如果已設定,玩家可以SkipReverse()

64

如果設定了這個屬性,播放器就能隨機播放媒體。

128
256
512

如果已設定,玩家可以BindGainControl()

1024

如果已設定,玩家將可以重複分組。

2048

如果設定完成,播放器可能會重複播放單一媒體項目。

4096

如果已設定,播放器可接受播放速率變更。

ALIASES

名稱說明
網域 string[1000]

網域可用來識別工作階段發生的生態系統。

網域格式應為

`domain://<unique name for protocol>.version`

| 符號是保留的,不應在網域字串中使用。

SessionId uint64