GCKUIMediaController 类

GCKUIMediaController 类参考

概览

界面视图的控制器,用于在 Cast 接收器上控制或显示媒体播放的状态。

调用方应用通过设置适当的属性向控制器注册其与媒体相关的界面控件。然后,控制器会通过向接收器发出适当的媒体命令来响应控件上的触摸事件,并根据从接收器接收到的状态信息和媒体元数据更新控件。控制器会根据当前会话和媒体播放器状态自动启用和停用界面控件。此外,当请求正在处理中时,它会停用所有控件。

如需了解委托协议,请参阅 GCKUIMediaControllerDelegate

开始时间
3.0

此类继承 NSObject。

实例方法摘要

(instancetype) - init
 初始化实例。更多...
 
(void) - bindLabel:toMetadataKey:
 UILabel 绑定到元数据键。更多...
 
(void) - bindLabel:toMetadataKey:withFormatter:
 UILabel 绑定到元数据键。更多...
 
(void) - bindTextView:toMetadataKey:
 UITextView 绑定到元数据键。更多...
 
(void) - bindTextView:toMetadataKey:withFormatter:
 UITextView 绑定到元数据键。更多...
 
(void) - bindImageView:toImageHints:
 UIImageView 绑定到 GCKUIImageHints 实例。更多...
 
(void) - bindControlView:toRewindForTime:
 绑定 UIControl,按传递的值快退播放当前项(以秒为单位)。更多...
 
(void) - bindControlView:toForwardForTime:
 绑定 UIControl,以按传递的值快进播放当前项(以秒为单位)。更多...
 
(void) - unbindView:
 取消绑定指定的视图。更多...
 
(void) - unbindAllViews
 取消绑定所有绑定视图。更多...
 
(GCKMediaRepeatMode- cycleRepeatMode
 将队列的重复模式更改为周期中的下一个模式:更多...
 
(void) - selectTracks
 用于显示媒体轨道选择界面的便捷方法。更多...
 
(void) - skipAd
 发送并监控跳过广告请求。更多...
 

属性摘要

id< GCKUIMediaControllerDelegatedelegate
 用于接收来自 GCKUIMediaController 的通知的代理。更多...
 
GCKSessionsession
 与此控制器相关联的会话。更多...
 
BOOL mediaLoaded
 接收设备上当前是否有媒体已加载(或正在加载)。更多...
 
BOOL hasCurrentQueueItem
 队列中是否有当前项。更多...
 
BOOL hasLoadingQueueItem
 队列中是否有正在预加载的项。更多...
 
GCKMediaPlayerState lastKnownPlayerState
 最新的已知媒体播放器状态。更多...
 
NSTimeInterval lastKnownStreamPosition
 最新的已知媒体流位置。更多...
 
UIButton * playButton
 “播放”按钮。更多...
 
UIButton * pauseButton
 “暂停”按钮。更多...
 
GCKUIMultistateButtonplayPauseToggleButton
 “播放/暂停”切换按钮。更多...
 
GCKUIPlayPauseToggleControllerplayPauseToggleController
 “播放/暂停”切换控制器。更多...
 
UIButton * stopButton
 “停止”按钮。更多...
 
UIButton * forward30SecondsButton
 一个按钮,用于在当前播放的媒体项中快进 30 秒。更多...
 
UIButton * rewind30SecondsButton
 用于在当前正在播放的媒体项中快退 30 秒的按钮。更多...
 
UIButton * pauseQueueButton
 用于在当前项播放完毕后暂停队列播放的按钮。更多...
 
UIButton * nextButton
 “下一步”按钮。更多...
 
UIButton * previousButton
 “上一项”按钮。更多...
 
GCKUIMultistateButtonrepeatModeButton
 用于在可用的队列重复模式之间循环切换的按钮。更多...
 
UISlider * streamPositionSlider
 用于显示和更改当前流位置的滑块。更多...
 
UIProgressView * streamProgressView
 用于显示当前流进度的视图。更多...
 
UILabel * streamPositionLabel
 用于显示当前流位置的标签(以分钟和秒为单位)。更多...
 
UILabel * streamDurationLabel
 用于显示当前流式传输时长(以分钟和秒为单位)的标签。更多...
 
UILabel * streamTimeRemainingLabel
 用于显示剩余直播时间(时长减去位置)的标签,以分钟和秒为单位。更多...
 
GCKUIStreamPositionControllerstreamPositionController
 数据流位置控制器。更多...
 
GCKUIPlaybackRateControllerplaybackRateController
 流播放速率控制器。更多...
 
BOOL displayTimeRemainingAsNegativeValue
 是否将剩余直播时间显示为负值,例如“-1:23:45”。更多...
 
BOOL hideStreamPositionControlsForLiveContent
 是否应为直播内容隐藏直播位置控件(包括直播位置滑块、直播位置标签、直播时长标签和直播进度视图)。更多...
 
UIButton * tracksButton
 用于选择音轨和/或可选字幕的按钮。更多...
 
UILabel * smartSubtitleLabel
 用于显示当前加载媒体的副标题的标签。更多...
 
UIActivityIndicatorView * mediaLoadingIndicator
 activity 指示器视图,用于指示媒体处于加载状态。更多...
 
UILabel * skipAdLabel
 用于显示广告跳过前的剩余时间的标签。更多...
 
UIButton * skipAdButton
 用于跳过当前广告的按钮。更多...
 

方法详细信息

- (instancetype) init

初始化实例。

- (void) bindLabel: (UILabel *)  label
toMetadataKey: (NSString *)  key 

UILabel 绑定到元数据键。

该视图将显示相应元数据字段的当前值。

如需查看预定义的元数据键的列表,请参阅 GCKMediaMetadata

Parameters
labelThe UILabel that will display the value.
keyThe metadata key.
- (void) bindLabel: (UILabel *)  label
toMetadataKey: (NSString *)  key
withFormatter: (GCKUIValueFormatter formatter 

UILabel 绑定到元数据键。

该视图将显示相应元数据字段的当前值。

如需查看预定义的元数据键的列表,请参阅 GCKMediaMetadata

Parameters
labelThe UILabel that will display the value.
keyThe metadata key.
formatterA block that will produce the desired string representation of the value.
- (void) bindTextView: (UITextView *)  textView
toMetadataKey: (NSString *)  key 

UITextView 绑定到元数据键。

该视图将显示相应元数据字段的当前值。

如需查看预定义的元数据键的列表,请参阅 GCKMediaMetadata

Parameters
textViewThe UITextView that will display the value.
keyThe metadata key.
- (void) bindTextView: (UITextView *)  textView
toMetadataKey: (NSString *)  key
withFormatter: (GCKUIValueFormatter formatter 

UITextView 绑定到元数据键。

该视图将显示相应元数据字段的当前值。

如需查看预定义的元数据键的列表,请参阅 GCKMediaMetadata

Parameters
textViewThe UITextView that will display the value.
keyThe metadata key.
formatterA block that will produce the desired string representation of the value.
- (void) bindImageView: (UIImageView *)  imageView
toImageHints: (GCKUIImageHints *)  imageHints 

UIImageView 绑定到 GCKUIImageHints 实例。

当前安装的 GCKUIImagePicker 将用于从元数据中为视图选择图片。

Parameters
imageViewThe UIImageView that will display the selected image.
imageHintsThe image hints.
- (void) bindControlView: (UIControl *)  control
toRewindForTime: (NSTimeInterval)  rewindSeconds 

绑定 UIControl,按传递的值快退播放当前项(以秒为单位)。

视图将根据 GCKCastSession 状态、远程播放状态以及是否为直播来更新。此外,系统还会将目标添加到 UIControl 以捕获 UIControlEventTouchUpInside 事件。请勿在 UIControl 上添加此类目标。如需捕获事件,请改用 GCKUIMediaControllerDelegate 方法。

Parameters
controlThe UI element that the user interacts with. Typically this would be an instance of UIButton.
rewindSecondsThe number of seconds to rewind the media.
- (void) bindControlView: (UIControl *)  control
toForwardForTime: (NSTimeInterval)  forwardSeconds 

绑定 UIControl,以按传递的值快进播放当前项(以秒为单位)。

视图将根据 GCKCastSession 状态、远程播放状态以及是否为直播来更新。此外,系统还会将目标添加到 UIControl 以捕获 UIControlEventTouchUpInside 事件。请勿在 UIControl 上添加此类目标。如需捕获事件,请改用 GCKUIMediaControllerDelegate 方法。

Parameters
controlThe UI element that the user interacts with. Typically this would be an instance of UIButton.
forwardSecondsThe number of seconds to skip the media.
- (void) unbindView: (UIView *)  view

取消绑定指定的视图。

Parameters
viewThe view to unbind.
- (void) unbindAllViews

取消绑定所有绑定视图。

- (GCKMediaRepeatMode) cycleRepeatMode

将队列的重复模式更改为周期中的下一个模式:

GCKMediaRepeatModeOffGCKMediaRepeatModeAllGCKMediaRepeatModeSingleGCKMediaRepeatModeAllAndShuffle

返回
新的重复模式。
- (void) selectTracks

用于显示媒体轨道选择界面的便捷方法。

- (void) skipAd

发送并监控跳过广告请求。

开始时间
4.3

房源详情

- (id<GCKUIMediaControllerDelegate>) delegate
readwritenonatomicweak

用于接收来自 GCKUIMediaController 的通知的代理。

- (GCKSession*) session
readnonatomicstrong

与此控制器相关联的会话。

- (BOOL) mediaLoaded
readnonatomicassign

接收设备上当前是否有媒体已加载(或正在加载)。

如果没有处于活动状态的投射会话,则该值将为 NO

- (BOOL) hasCurrentQueueItem
readnonatomicassign

队列中是否有当前项。

- (BOOL) hasLoadingQueueItem
readnonatomicassign

队列中是否有正在预加载的项。

- (GCKMediaPlayerState) lastKnownPlayerState
readnonatomicassign

最新的已知媒体播放器状态。

如果投屏会话未处于活动状态,这是指上次会话结束前的玩家状态。如果之前没有任何会话,则将为 GCKMediaPlayerStateUnknown。

- (NSTimeInterval) lastKnownStreamPosition
readnonatomicassign

最新的已知媒体流位置。

如果没有处于活动状态的投射会话,则这是指上次会话结束之前的媒体流位置。如果之前没有任何会话,此值将为 kGCKInvalidTimeInterval

- (UIButton*) playButton
readwritenonatomicweak

“播放”按钮。

点按该按钮后,系统会在接收设备上开始或继续播放当前加载的媒体。如果播放已在进行中、当前未加载任何媒体或当前没有任何投射会话处于活动状态,该按钮将被停用。

- (UIButton*) pauseButton
readwritenonatomicweak

“暂停”按钮。

点按该按钮时,接收端会暂停播放当前加载的媒体。如果当前加载的媒体不支持暂停、当前未在播放、当前未加载任何媒体或当前没有任何投放会话,则此按钮将被停用。

- (GCKUIMultistateButton*) playPauseToggleButton
readwritenonatomicweak

“播放/暂停”切换按钮。

调用方应为按钮的 GCKUIButtonStatePlayGCKUIButtonStatePlayLiveGCKUIButtonStatePause 按钮状态设置适当的图标,即为播放状态设置“暂停”图标,为实时播放状态设置“停止”图标,为暂停状态设置“播放”图标。按钮状态会自动更新,以反映接收器上的当前播放状态。点按该按钮时,当前加载的媒体会在接收设备上暂停或继续播放。如果当前加载的媒体不支持暂停、播放当前未在进行或暂停、当前未加载任何媒体或当前没有任何投放会话,该按钮将被停用。

- (GCKUIPlayPauseToggleController*) playPauseToggleController
readwritenonatomicstrong

“播放/暂停”切换控制器。

用作应用提供的自定义播放/暂停切换界面的替代项。详情请参见 GCKUIPlayPauseToggleController

开始时间
3.4
- (UIButton*) stopButton
readwritenonatomicweak

“停止”按钮。

点按该按钮时,接收端会停止播放当前加载的媒体。如果当前未加载任何媒体内容,或者当前没有任何投屏会话,则该按钮将被停用。

- (UIButton*) forward30SecondsButton
readwritenonatomicweak

一个按钮,用于在当前播放的媒体项中快进 30 秒。

如果当前未加载任何媒体内容,或者当前没有任何投屏会话,则该按钮将被停用。

- (UIButton*) rewind30SecondsButton
readwritenonatomicweak

用于在当前正在播放的媒体项中快退 30 秒的按钮。

如果当前未加载任何媒体内容,或者当前没有任何投屏会话,则该按钮将被停用。

- (UIButton*) pauseQueueButton
readwritenonatomicweak

用于在当前项播放完毕后暂停队列播放的按钮。

- (UIButton*) nextButton
readwritenonatomicweak

“下一步”按钮。

点按该按钮后,播放将移至队列中的下一个媒体项。如果该操作不受支持、当前未加载任何媒体或当前没有任何 Cast 会话,该按钮将被停用。

- (UIButton*) previousButton
readwritenonatomicweak

“上一项”按钮。

点按该按钮后,播放进度会移至队列中的上一个媒体项。如果该操作不受支持、当前未加载任何媒体或当前没有任何 Cast 会话,该按钮将被停用。

- (GCKUIMultistateButton*) repeatModeButton
readwritenonatomicweak

用于在可用的队列重复模式之间循环切换的按钮。

(请参阅 GCKMediaRepeatMode。)调用方应为按钮的 GCKUIButtonStateRepeatOffGCKUIButtonStateRepeatSingleGCKUIButtonStateRepeatAllGCKUIButtonStateShuffle 按钮状态设置适当的图标。按钮状态会自动更新,以反映接收器上的当前队列重复模式。点按该按钮会按顺序循环进入下一个重复模式:

GCKMediaRepeatModeOffGCKMediaRepeatModeAllGCKMediaRepeatModeSingleGCKMediaRepeatModeAllAndShuffle

如果当前没有处于活动状态的投射会话,该按钮将被停用。

- (UISlider*) streamPositionSlider
readwritenonatomicweak

用于显示和更改当前流位置的滑块。

当用户更改滑块的值时,接收端上当前加载的媒体的流位置也会相应更新。在接收设备上播放媒体时,滑块的值会实时更新,以反映当前的流位置。如果当前加载的媒体不支持跳转、当前未加载任何媒体或当前没有任何投屏会话处于活动状态,则滑块将被停用。

- (UIProgressView*) streamProgressView
readwritenonatomicweak

用于显示当前流进度的视图。

当接收器上正在进行媒体播放时,视图的值会实时更新以反映当前的流位置。如果当前加载的媒体是直播活动、当前未加载任何媒体,或者当前没有任何投屏会话处于活动状态,则视图将被停用。

- (UILabel*) streamPositionLabel
readwritenonatomicweak

用于显示当前流位置的标签(以分钟和秒为单位)。

如果当前未加载媒体内容,或者当前没有处于活动状态的 Cast 会话,则标签会显示本地化形式的“--:--”。

- (UILabel*) streamDurationLabel
readwritenonatomicweak

用于显示当前流式传输时长(以分钟和秒为单位)的标签。

如果当前加载的媒体没有时长(例如,如果是直播活动),或者当前未加载任何媒体,或者当前没有处于活动状态的 Cast 会话,则该标签会显示本地化形式的“--:--”。

- (UILabel*) streamTimeRemainingLabel
readwritenonatomicweak

用于显示剩余直播时间(时长减去位置)的标签,以分钟和秒为单位。

如果当前加载的媒体没有时长(例如,如果是直播活动),或者当前未加载任何媒体,或者当前没有处于活动状态的 Cast 会话,则该标签会显示本地化形式的“--:--”。

- (GCKUIStreamPositionController*) streamPositionController
readwritenonatomicstrong

数据流位置控制器。

用作应用提供的自定义信息流位置和/或跳转界面的替代项。详情请参见 GCKUIStreamPositionController

开始时间
3.4
- (GCKUIPlaybackRateController*) playbackRateController
readwritenonatomicstrong

流播放速率控制器。

详情请参见 GCKUIPlaybackRateController

开始时间
4.0
- (BOOL) displayTimeRemainingAsNegativeValue
readwritenonatomicassign

是否将剩余直播时间显示为负值,例如“-1:23:45”。

默认情况下,此属性设置为 YES

- (BOOL) hideStreamPositionControlsForLiveContent
readwritenonatomicassign

是否应为直播内容隐藏直播位置控件(包括直播位置滑块、直播位置标签、直播时长标签和直播进度视图)。

默认值为 NO

开始时间
4.0
- (UIButton*) tracksButton
readwritenonatomicweak

用于选择音轨和/或可选字幕的按钮。

点按该按钮后,系统会向用户显示媒体跟踪选择界面。如果当前加载的媒体没有任何可选择的媒体轨道、当前未加载任何媒体或当前没有任何投放会话,该按钮将被停用。

- (UILabel*) smartSubtitleLabel
readwritenonatomicweak

用于显示当前加载媒体的副标题的标签。

如果元数据中没有明确设置字幕字段,标签会根据媒体类型显示最合适的元数据字段,例如电影的工作室名称或音乐曲目的音乐人姓名。

- (UIActivityIndicatorView*) mediaLoadingIndicator
readwritenonatomicweak

activity 指示器视图,用于指示媒体处于加载状态。

- (UILabel*) skipAdLabel
readwritenonatomicweak

用于显示广告跳过前的剩余时间的标签。

开始时间
4.3
- (UIButton*) skipAdButton
readwritenonatomicweak

用于跳过当前广告的按钮。

开始时间
4.3