public abstract class PlaybackControlGlue
extends Object
implements OnActionClickedListener, View.OnKeyListener
java.lang.Object | |
↳ | android.support.v17.leanback.app.PlaybackControlGlue |
Known Direct Subclasses |
管理PlaybackControlsRow
和PlaybackOverlayFragment
助手类,它实现了处理标准播放控制操作(如播放/暂停,以渐进速度级别快进/倒带并跳至下一首/上一首)的推荐方法。 该辅助类是一个粘合层,它通过定义媒体播放器的功能接口来管理leanback UI组件的配置和交互。
你可以实例化一个具体的子类,比如MediaControllerGlue
或者你必须MediaControllerGlue
这个抽象助手。 要创建子类,必须实现所有抽象方法,并且子类必须适当地调用onMetadataChanged()
和onStateChanged()
。
要使用粘合层的一个实例,首先构造一个实例。 构造函数参数通知胶水什么速度水平支持快进/快退。 提供PlaybackOverlayFragment
是可选的。
如果你有自己的控制行,你必须将它传递给setControlsRow(PlaybackControlsRow)
。 该行将由胶合层根据媒体元数据和播放状态进行更新。 或者,您可以调用createControlsRowAndPresenter()
,它将设置控件行并返回可用于呈现行的行演示器。
帮助程序将控件行上的SparseArrayObjectAdapter
设置为主要操作适配器,并向其添加操作。 您可以通过覆盖createPrimaryActionsAdapter(PresenterSelector)
来提供其他操作。 这个助手不处理次要操作,所以你可以单独添加。
在你的片段上提供点击监听器,如果单击一个动作,请致电onActionClicked(Action)
。 没有必要调用setOnItemViewClickedListener(OnItemViewClickedListener)
但是如果你做了一个点击侦听器将被安装在片段上,并且将会处理被识别的动作点击。 您的监听器只会被调用,用于未处理的操作。
该助手实现了一个关键的事件处理程序。 如果你传递一个PlaybackOverlayFragment
那么片段的输入事件处理程序将被设置。 否则,当您的行展示器绑定时,您应该将胶水对象设置为ViewHolder的关键事件处理程序; 见setOnKeyListener(android.view.View.OnKeyListener)
。
要在播放过程中更新控件行进度,请覆盖enableProgressUpdating(boolean)
以将定期回updateProgress()
的生命周期管理为updateProgress()
。 getUpdatePeriod()
提供了一个推荐的更新期限。
Constants |
|
---|---|
int |
ACTION_CUSTOM_LEFT_FIRST 预定义主控件左侧的第一个自定义控件的适配器键。 |
int |
ACTION_CUSTOM_RIGHT_FIRST 预定义主控件右侧第一个自定义控件的适配器键。 |
int |
ACTION_FAST_FORWARD 用于快进控制的适配器键。 |
int |
ACTION_PLAY_PAUSE 播放/暂停控制的适配器键。 |
int |
ACTION_REWIND 倒带控制的适配器键。 |
int |
ACTION_SKIP_TO_NEXT 跳转到下一个控件的适配器键。 |
int |
ACTION_SKIP_TO_PREVIOUS 跳转到上一个控件的适配器键。 |
int |
PLAYBACK_SPEED_FAST_L0 初始(0级)快进播放速度。 |
int |
PLAYBACK_SPEED_FAST_L1 1级快进播放速度。 |
int |
PLAYBACK_SPEED_FAST_L2 2级快进播放速度。 |
int |
PLAYBACK_SPEED_FAST_L3 3级快进播放速度。 |
int |
PLAYBACK_SPEED_FAST_L4 4级快进播放速度。 |
int |
PLAYBACK_SPEED_INVALID 播放速度无效。 |
int |
PLAYBACK_SPEED_NORMAL 速度表示正在播放的播放状态。 |
int |
PLAYBACK_SPEED_PAUSED 表示暂停播放状态的速度。 |
Public constructors |
|
---|---|
PlaybackControlGlue(Context context, int[] seekSpeeds) 胶水的构造函数。 |
|
PlaybackControlGlue(Context context, int[] fastForwardSpeeds, int[] rewindSpeeds) 胶水的构造函数。 |
|
PlaybackControlGlue(Context context, PlaybackOverlayFragment fragment, int[] seekSpeeds) 胶水的构造函数。 |
|
PlaybackControlGlue(Context context, PlaybackOverlayFragment fragment, int[] fastForwardSpeeds, int[] rewindSpeeds) 胶水的构造函数。 |
Public methods |
|
---|---|
PlaybackControlsRowPresenter |
createControlsRowAndPresenter() Helper方法用于实例化 |
void |
enableProgressUpdating(boolean enable) 重写此操作以启动/停止可运行程序,以 |
Context |
getContext() 返回上下文。 |
PlaybackControlsRow |
getControlsRow() 返回由胶合层管理的播放控件行。 |
abstract int |
getCurrentPosition() 以毫秒为单位返回媒体项目的当前位置。 |
abstract int |
getCurrentSpeedId() 返回当前的播放速度。 |
int[] |
getFastForwardSpeeds() 返回快进速度。 |
PlaybackOverlayFragment |
getFragment() 返回片段。 |
abstract Drawable |
getMediaArt() 返回媒体项目的艺术位图。 |
abstract int |
getMediaDuration() 以毫秒为单位返回媒体项目的持续时间。 |
abstract CharSequence |
getMediaSubtitle() 返回媒体项目的副标题。 |
abstract CharSequence |
getMediaTitle() 返回媒体项目的标题。 |
OnItemViewClickedListener |
getOnItemViewClickedListener() |
int[] |
getRewindSpeeds() 返回快退速度。 |
abstract long |
getSupportedActions() 返回媒体播放器支持的操作的位掩码。 |
int |
getUpdatePeriod() 返回应该用于更新进度的时间段(以毫秒为单位)。 |
abstract boolean |
hasValidMedia() 如果存在有效的媒体项目,则返回true。 |
boolean |
isFadingEnabled() 如果在播放媒体时将控件设置为淡出,则返回true。 |
abstract boolean |
isMediaPlaying() 如果媒体正在播放,则返回true。 |
void |
onActionClicked(Action action) 处理动作点击。 |
boolean |
onKey(View v, int keyCode, KeyEvent event) 处理关键事件并在处理后返回true。 |
void |
setControlsRow(PlaybackControlsRow controlsRow) 设置控制行由胶合层管理。 |
void |
setFadingEnabled(boolean enable) 将媒体播放时的控件设置为在超时后淡出。 |
void |
setOnItemViewClickedListener(OnItemViewClickedListener listener) 此方法已弃用。 不要称这个。 您可以自己将侦听器设置在片段上,然后致电 |
void |
updateProgress() 根据当前媒体播放位置更新进度条。 |
Protected methods |
|
---|---|
SparseArrayObjectAdapter |
createPrimaryActionsAdapter(PresenterSelector presenterSelector) 创建主要操作适配器。 |
void |
onMetadataChanged() 当元数据状态发生变化时,必须由子类适当调用。 |
abstract void |
onRowChanged(PlaybackControlsRow row) 播放控件行更改时调用。 |
void |
onStateChanged() 播放状态改变时,必须由子类适当调用。 |
abstract void |
pausePlayback() 暂停播放。 |
abstract void |
skipToNext() 跳至下一首曲目。 |
abstract void |
skipToPrevious() 跳到上一首曲目。 |
abstract void |
startPlayback(int speed) 以给定的速度开始播放。 |
Inherited methods |
|
---|---|
From class java.lang.Object
|
|
From interface android.support.v17.leanback.widget.OnActionClickedListener
|
|
From interface android.view.View.OnKeyListener
|
int ACTION_CUSTOM_LEFT_FIRST
预定义主控件左侧的第一个自定义控件的适配器键。
常数值:1(0x00000001)
int ACTION_CUSTOM_RIGHT_FIRST
预定义主控件右侧第一个自定义控件的适配器键。
常量值:4096(0x00001000)
int ACTION_FAST_FORWARD
用于快进控制的适配器键。
常量值:128(0x00000080)
int ACTION_PLAY_PAUSE
播放/暂停控制的适配器键。
常量值:64(0x00000040)
int ACTION_REWIND
倒带控制的适配器键。
常量值:32(0x00000020)
int ACTION_SKIP_TO_NEXT
跳转到下一个控件的适配器键。
常量值:256(0x00000100)
int ACTION_SKIP_TO_PREVIOUS
跳转到上一个控件的适配器键。
常量值:16(0x00000010)
int PLAYBACK_SPEED_FAST_L0
初始(0级)快进播放速度。 此值的负值用于以相同速度倒带。
常量值:10(0x0000000a)
int PLAYBACK_SPEED_FAST_L1
1级快进播放速度。 此值的负值用于以相同速度倒带。
常量值:11(0x0000000b)
int PLAYBACK_SPEED_FAST_L2
2级快进播放速度。 此值的负值用于以相同速度倒带。
常量值:12(0x0000000c)
int PLAYBACK_SPEED_FAST_L3
3级快进播放速度。 此值的负值用于以相同速度倒带。
常量值:13(0x0000000d)
int PLAYBACK_SPEED_FAST_L4
4级快进播放速度。 此值的负值用于以相同速度倒带。
常量值:14(0x0000000e)
int PLAYBACK_SPEED_INVALID
播放速度无效。
常量值:-1(0xffffffff)
int PLAYBACK_SPEED_NORMAL
速度表示正在播放的播放状态。
常数值:1(0x00000001)
int PLAYBACK_SPEED_PAUSED
表示暂停播放状态的速度。
常量值:0(0x00000000)
PlaybackControlGlue (Context context, int[] seekSpeeds)
胶水的构造函数。
Parameters | |
---|---|
seekSpeeds |
int : Array of seek speeds for fast forward and rewind. |
PlaybackControlGlue (Context context, int[] fastForwardSpeeds, int[] rewindSpeeds)
胶水的构造函数。
Parameters | |
---|---|
fastForwardSpeeds |
int : Array of seek speeds for fast forward. |
rewindSpeeds |
int : Array of seek speeds for rewind. |
PlaybackControlGlue (Context context, PlaybackOverlayFragment fragment, int[] seekSpeeds)
胶水的构造函数。
Parameters | |
---|---|
fragment |
PlaybackOverlayFragment : Optional; if using a PlaybackOverlayFragment , pass it in. |
seekSpeeds |
int : Array of seek speeds for fast forward and rewind. |
PlaybackControlGlue (Context context, PlaybackOverlayFragment fragment, int[] fastForwardSpeeds, int[] rewindSpeeds)
胶水的构造函数。
Parameters | |
---|---|
fragment |
PlaybackOverlayFragment : Optional; if using a PlaybackOverlayFragment , pass it in. |
fastForwardSpeeds |
int : Array of seek speeds for fast forward. |
rewindSpeeds |
int : Array of seek speeds for rewind. |
PlaybackControlsRowPresenter createControlsRowAndPresenter ()
实例化 PlaybackControlsRow
和相应的 PlaybackControlsRowPresenter
助手方法。
Returns | |
---|---|
PlaybackControlsRowPresenter |
void enableProgressUpdating (boolean enable)
重写此操作以启动/停止可运行程序,以 updateProgress()
为间隔调用 getUpdatePeriod()
。
Parameters | |
---|---|
enable |
boolean
|
int getCurrentPosition ()
以毫秒为单位返回媒体项目的当前位置。
Returns | |
---|---|
int |
int[] getFastForwardSpeeds ()
返回快进速度。
Returns | |
---|---|
int[] |
int getMediaDuration ()
以毫秒为单位返回媒体项目的持续时间。
Returns | |
---|---|
int |
OnItemViewClickedListener getOnItemViewClickedListener ()
返回 OnItemViewClickedListener
。
Returns | |
---|---|
OnItemViewClickedListener |
int[] getRewindSpeeds ()
返回快退速度。
Returns | |
---|---|
int[] |
long getSupportedActions ()
返回媒体播放器支持的操作的位掩码。
Returns | |
---|---|
long |
boolean hasValidMedia ()
如果存在有效的媒体项目,则返回true。
Returns | |
---|---|
boolean |
boolean isFadingEnabled ()
如果在播放媒体时将控件设置为淡出,则返回true。
Returns | |
---|---|
boolean |
boolean isMediaPlaying ()
如果媒体正在播放,则返回true。
Returns | |
---|---|
boolean |
void onActionClicked (Action action)
处理动作点击。 一个子类可以重写这个添加对其他操作的支持。
Parameters | |
---|---|
action |
Action
|
boolean onKey (View v, int keyCode, KeyEvent event)
处理关键事件并在处理后返回true。 一个子类可以覆盖这个以提供额外的支持。
Parameters | |
---|---|
v |
View : The view the key has been dispatched to. |
keyCode |
int : The code for the physical key that was pressed |
event |
KeyEvent : The KeyEvent object containing full information about the event. |
Returns | |
---|---|
boolean |
True if the listener has consumed the event, false otherwise. |
void setControlsRow (PlaybackControlsRow controlsRow)
设置控制行由胶合层管理。 该行的主要操作和播放状态相关方面由胶水更新。
Parameters | |
---|---|
controlsRow |
PlaybackControlsRow
|
void setFadingEnabled (boolean enable)
将媒体播放时的控件设置为在超时后淡出。
Parameters | |
---|---|
enable |
boolean
|
void setOnItemViewClickedListener (OnItemViewClickedListener listener)
此方法已弃用。
不要称这个。 您可以自己将侦听器设置在片段上,然后致电onActionClicked(Action)
来处理点击。
如果点击事件没有在内部处理,请设置 OnItemViewClickedListener
被调用。
void updateProgress ()
根据当前媒体播放位置更新进度条。
SparseArrayObjectAdapter createPrimaryActionsAdapter (PresenterSelector presenterSelector)
创建主要操作适配器。 可能会被覆盖以将其他主要操作添加到适配器。
Parameters | |
---|---|
presenterSelector |
PresenterSelector
|
Returns | |
---|---|
SparseArrayObjectAdapter |
void onMetadataChanged ()
当元数据状态发生变化时,必须由子类适当调用。
void onRowChanged (PlaybackControlsRow row)
播放控件行更改时调用。 应该通知包含该行的适配器。
Parameters | |
---|---|
row |
PlaybackControlsRow
|
void onStateChanged ()
播放状态改变时,必须由子类适当调用。
void pausePlayback ()
暂停播放。
void skipToNext ()
跳至下一首曲目。
void skipToPrevious ()
跳到上一首曲目。
void startPlayback (int speed)
以给定的速度开始播放。
Parameters | |
---|---|
speed |
int : The desired playback speed. For normal playback this will be PLAYBACK_SPEED_NORMAL ; higher positive values for fast forward, and negative values for rewind. |