fuchsia.media.sessions2

已新增:7

專家

ActiveSession

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

監控裝置上目前媒體工作階段的通訊協定。

目前執行中的媒體工作階段是最新執行的媒體工作階段,用於宣告本機裝置上的「正在播放」狀態,即使目前已暫停也一樣。

WatchActiveSession

查看執行中的工作階段。系統會立即以目前啟用的工作階段回應第一個要求。當運作中的工作階段變更時,請一律將要求保留下來以收到回覆。

要求

<EMPTY>

回應

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

繫結至工作階段的音量控制項和通知。如果 PlayerCapabilities 中缺少 HAS_GAIN_CONTROL 標記,但不支援這個方法,則服務會關閉做為 volume_control_request 傳遞的管道控制代碼。

要求

名稱類型
volume_control_request server_end<fuchsia.media.audio/VolumeControl>

NextItem

將媒體變更為下一個項目 (例如播放清單中的下一首歌曲)。如果不支援 PlayerCapabilities 中缺少 CHANGE_TO_NEXT_ITEM 標記的表示方式,這個方法就沒有任何作用。

要求

<EMPTY>

暫停

暫停播放並保留媒體中的位置。如 PlayerCapabilities 中缺少 PAUSE 標記,表示不支援此方法,此方法沒有任何作用。

要求

<EMPTY>

播放

播放媒體。如果不支援 PlayerCapabilities 中缺少 PLAY 標記的說明,則不支援此方法,此方法沒有任何作用。

要求

<EMPTY>

PrevItem

將媒體變更為上一個項目。如果不支援 PlayerCapabilities 中缺少 CHANGE_TO_PREV_ITEM 標記的表示方式,這個方法就沒有任何作用。

要求

<EMPTY>

跳轉

跳轉至媒體中的特定位置。位置超出邊界時,不必導入錯誤狀態。position 是從媒體開頭的偏移值。如 PlayerCapabilities 中缺少 SEEK 標記,表示不支援此方法,此方法沒有任何作用。

要求

名稱類型
position zx/Duration

SetPlaybackRate

設定媒體的播放速率。這項操作不會改變播放模式。如 PlayerCapabilities 中缺少 SET_PLAYBACK_RATE 標記所示,因此此方法不支援此方法,

要求

名稱類型
playback_rate float32

SetRepeatMode

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

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

要求

名稱類型
repeat_mode RepeatMode

SetShuffleMode

設定隨機播放模式。如 PlayerCapabilities 中缺少 SHUFFLE 標記,而不支援此方法,此方法沒有任何作用。

要求

名稱類型
shuffle_on bool

SkipForward

根據播放器預設的略過次數,在媒體中快轉。如 PlayerCapabilities 中缺少 SKIP_FORWARD 標記,表示不支援此方法,此方法沒有任何作用。

要求

<EMPTY>

SkipReverse

根據播放器預設的略過次數,在媒體中倒轉。如果不支援 PlayerCapabilities 中缺少 SKIP_REVERSE 標記的表示方式不支援這個方法,這個方法就沒有任何作用。

要求

<EMPTY>

停止

停止播放。工作階段應會關閉。

要求

<EMPTY>

WatchInfoChange

使用等待取得模式取得網路玩家資訊變更。

要求

<EMPTY>

回應

名稱類型
player_info_delta PlayerInfoDelta

PlayerControl

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

媒體播放器的控制項。PlayerCapabilities 表示玩家支援這個通訊協定中的方法。由於功能是動態的,且用戶端無法隨時知道方法呼叫送達服務時將支援哪些功能,因此呼叫不支援的方法只會遭到忽略。一般而言,除非玩家表示持續支援,否則用戶端不應預期方法運作。

BindVolumeControl

繫結至工作階段的音量控制項和通知。如果 PlayerCapabilities 中缺少 HAS_GAIN_CONTROL 標記,但不支援這個方法,則服務會關閉做為 volume_control_request 傳遞的管道控制代碼。

要求

名稱類型
volume_control_request server_end<fuchsia.media.audio/VolumeControl>

NextItem

將媒體變更為下一個項目 (例如播放清單中的下一首歌曲)。如果不支援 PlayerCapabilities 中缺少 CHANGE_TO_NEXT_ITEM 標記的表示方式,這個方法就沒有任何作用。

要求

<EMPTY>

暫停

暫停播放並保留媒體中的位置。如 PlayerCapabilities 中缺少 PAUSE 標記,表示不支援此方法,此方法沒有任何作用。

要求

<EMPTY>

播放

播放媒體。如果不支援 PlayerCapabilities 中缺少 PLAY 標記的說明,則不支援此方法,此方法沒有任何作用。

要求

<EMPTY>

PrevItem

將媒體變更為上一個項目。如果不支援 PlayerCapabilities 中缺少 CHANGE_TO_PREV_ITEM 標記的表示方式,這個方法就沒有任何作用。

要求

<EMPTY>

跳轉

跳轉至媒體中的特定位置。位置超出邊界時,不必導入錯誤狀態。position 是從媒體開頭的偏移值。如 PlayerCapabilities 中缺少 SEEK 標記,表示不支援此方法,此方法沒有任何作用。

要求

名稱類型
position zx/Duration

SetPlaybackRate

設定媒體的播放速率。這項操作不會改變播放模式。如 PlayerCapabilities 中缺少 SET_PLAYBACK_RATE 標記所示,因此此方法不支援此方法,

要求

名稱類型
playback_rate float32

SetRepeatMode

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

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

要求

名稱類型
repeat_mode RepeatMode

SetShuffleMode

設定隨機播放模式。如 PlayerCapabilities 中缺少 SHUFFLE 標記,而不支援此方法,此方法沒有任何作用。

要求

名稱類型
shuffle_on bool

SkipForward

根據播放器預設的略過次數,在媒體中快轉。如 PlayerCapabilities 中缺少 SKIP_FORWARD 標記,表示不支援此方法,此方法沒有任何作用。

要求

<EMPTY>

SkipReverse

根據播放器預設的略過次數,在媒體中倒轉。如果不支援 PlayerCapabilities 中缺少 SKIP_REVERSE 標記的表示方式不支援這個方法,這個方法就沒有任何作用。

要求

<EMPTY>

停止

停止播放。工作階段應會關閉。

要求

<EMPTY>

出版商

定義於 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

將媒體變更為下一個項目 (例如播放清單中的下一首歌曲)。

要求

<EMPTY>

暫停

暫停播放並保留媒體中的位置

要求

<EMPTY>

播放

播放媒體。

要求

<EMPTY>

PrevItem

將媒體變更為上一個項目。

要求

<EMPTY>

跳轉

跳轉至媒體中的特定位置。位置超出邊界時,不必導入錯誤狀態。position 是從媒體開頭的偏移值。

要求

名稱類型
position zx/Duration

SetPlaybackRate

設定媒體的播放速率。這不會變更播放模式。

要求

名稱類型
playback_rate float32

SetRepeatMode

將重複模式設為任何支援的重複模式。

要求

名稱類型
repeat_mode RepeatMode

SetShuffleMode

設定隨機播放模式。

要求

名稱類型
shuffle_on bool

SkipForward

根據播放器預設的略過次數,在媒體中快轉。

要求

<EMPTY>

SkipReverse

根據播放器預設的略過次數,在媒體中倒轉。

要求

<EMPTY>

停止

停止播放。工作階段應會關閉。

要求

<EMPTY>

WatchStatus

查看工作階段狀態。離開要求,在工作階段狀態變更時收到回覆。系統會立即以目前狀態回應第一個要求。

要求

<EMPTY>

回應

名稱類型
session_info_delta SessionInfoDelta

SessionObserver

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

查看媒體工作階段的狀態。

如果媒體工作階段停止,頻道就會關閉。

WatchStatus

查看工作階段狀態。離開要求,在工作階段狀態變更時收到回覆。系統會立即以目前狀態回應第一個要求。

要求

<EMPTY>

回應

名稱類型
session_info_delta SessionInfoDelta

SessionsWatcher

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

SessionsWatcher 會觀看已發布的工作階段集合。

SessionRemoved

註冊資料庫從已註冊的集合中移除工作階段時,會由登錄服務呼叫。

SessionsWatcher 必須回覆確認收到工作階段移除的通知。 沒有回覆的欠款觀察者最終會中斷連線。

要求

名稱類型
session_id SessionId

回應

<EMPTY>

SessionUpdated

在更新工作階段時,註冊資料庫服務會呼叫此方法。首次連線時,系統會按所需次數來呼叫全世界的狀態。

SessionsWatcher 必須回覆,以確認已收到工作階段資訊差異。沒有回覆的欠款觀察者最終會中斷連線。

要求

名稱類型
session_id SessionId
session_info_delta SessionInfoDelta

回應

<EMPTY>

結構

ImageSizeVariant

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

特定大小的圖片變化版本。

欄位類型說明預設
url fuchsia.url/Url 無預設
width uint32 無預設
height uint32 無預設

表情符號

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

用於播放媒體的圖片。

序數欄位類型說明
image_type MediaImageType
sizes vector<ImageSizeVariant>[16]

圖片的可用變化版本。

PlayerCapabilities

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

說明玩家的功能。

序數欄位類型說明
flags PlayerCapabilityFlags

指出播放器可支援哪些功能。詳情請參閱 PlayerControl

PlayerInfoDelta

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

發出時,應設定已變更的欄位。新用戶端發出的第一個發出作業應為快照。

序數欄位類型說明
local bool

媒體進入裝置網路的進入點是否為本機電腦;如果裝置是從音樂服務串流內容,則應設為 true;如果這部機器只是接收到做為喇叭而接收音訊串流,則這個欄位的值應為 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

媒體工作階段登錄服務註冊玩家時所需的所有資訊,以便用戶端可觀察其狀態及管理。

序數欄位類型說明
domain Domain

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

usage fuchsia.media/AudioRenderUsage

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

PlayerStatus

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

媒體播放器的狀態。

序數欄位類型說明
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 包含媒體工作階段的說明。

序數欄位類型說明
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

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

已觀看系列是指符合所有選項的一組工作階段。

序數欄位類型說明
only_active bool

只觀看進行中的工作階段。如不設定,則會全部觀看影片。

allowed_sessions vector<uint64>[1000]

只觀看有這些許可清單 ID 的活動。如不設定,則會全部觀看影片。

節拍

PlayerCapabilityFlag 嚴格

類型:uint32

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

名稱說明
1

設定後,播放器可以Play()

4

設定後,播放器可以Pause()

8

設定後,播放器可以Seek()

16

設定後,播放器可以SkipForward()

32

設定後,播放器可以SkipReverse()

64

設定後,播放器可以隨機播放媒體。

128
256
512

設定後,播放器可以BindGainControl()

1024

如果設定這項設定,玩家就能重複播放群組。

2048

設定後,播放器可以重複播放單一媒體項目。

4096

設定後,播放器就能接受播放速率變更。

別名

名稱說明
網域 string[1000]

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

網域的格式應為

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

| 符號為保留符號,不應用於網域字串。

SessionId uint64