Most visited

Recently visited

PlaybackControlGlue

public abstract class PlaybackControlGlue
extends Object implements OnActionClickedListener, View.OnKeyListener

java.lang.Object
   ↳ android.support.v17.leanback.app.PlaybackControlGlue
Known Direct Subclasses


管理PlaybackControlsRowPlaybackOverlayFragment助手类,它实现了处理标准播放控制操作(如播放/暂停,以渐进速度级别快进/倒带并跳至下一首/上一首)的推荐方法。 该辅助类是一个粘合层,它通过定义媒体播放器的功能接口来管理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()提供了一个推荐的更新期限。

Summary

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方法用于实例化 PlaybackControlsRow和相应的 PlaybackControlsRowPresenter

void enableProgressUpdating(boolean enable)

重写此操作以启动/停止可运行程序,以 updateProgress()的间隔调用 getUpdatePeriod()

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()

返回 OnItemViewClickedListener

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)

此方法已弃用。 不要称这个。 您可以自己将侦听器设置在片段上,然后致电onActionClicked(Action)处理点击。

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

Constants

ACTION_CUSTOM_LEFT_FIRST

int ACTION_CUSTOM_LEFT_FIRST

预定义主控件左侧的第一个自定义控件的适配器键。

常数值:1(0x00000001)

ACTION_CUSTOM_RIGHT_FIRST

int ACTION_CUSTOM_RIGHT_FIRST

预定义主控件右侧第一个自定义控件的适配器键。

常量值:4096(0x00001000)

ACTION_FAST_FORWARD

int ACTION_FAST_FORWARD

用于快进控制的适配器键。

常量值:128(0x00000080)

ACTION_PLAY_PAUSE

int ACTION_PLAY_PAUSE

播放/暂停控制的适配器键。

常量值:64(0x00000040)

ACTION_REWIND

int ACTION_REWIND

倒带控制的适配器键。

常量值:32(0x00000020)

ACTION_SKIP_TO_NEXT

int ACTION_SKIP_TO_NEXT

跳转到下一个控件的适配器键。

常量值:256(0x00000100)

ACTION_SKIP_TO_PREVIOUS

int ACTION_SKIP_TO_PREVIOUS

跳转到上一个控件的适配器键。

常量值:16(0x00000010)

PLAYBACK_SPEED_FAST_L0

int PLAYBACK_SPEED_FAST_L0

初始(0级)快进播放速度。 此值的负值用于以相同速度倒带。

常量值:10(0x0000000a)

PLAYBACK_SPEED_FAST_L1

int PLAYBACK_SPEED_FAST_L1

1级快进播放速度。 此值的负值用于以相同速度倒带。

常量值:11(0x0000000b)

PLAYBACK_SPEED_FAST_L2

int PLAYBACK_SPEED_FAST_L2

2级快进播放速度。 此值的负值用于以相同速度倒带。

常量值:12(0x0000000c)

PLAYBACK_SPEED_FAST_L3

int PLAYBACK_SPEED_FAST_L3

3级快进播放速度。 此值的负值用于以相同速度倒带。

常量值:13(0x0000000d)

PLAYBACK_SPEED_FAST_L4

int PLAYBACK_SPEED_FAST_L4

4级快进播放速度。 此值的负值用于以相同速度倒带。

常量值:14(0x0000000e)

PLAYBACK_SPEED_INVALID

int PLAYBACK_SPEED_INVALID

播放速度无效。

常量值:-1(0xffffffff)

PLAYBACK_SPEED_NORMAL

int PLAYBACK_SPEED_NORMAL

速度表示正在播放的播放状态。

常数值:1(0x00000001)

PLAYBACK_SPEED_PAUSED

int PLAYBACK_SPEED_PAUSED

表示暂停播放状态的速度。

常量值:0(0x00000000)

Public constructors

PlaybackControlGlue

PlaybackControlGlue (Context context, 
                int[] seekSpeeds)

胶水的构造函数。

Parameters
seekSpeeds int: Array of seek speeds for fast forward and rewind.

PlaybackControlGlue

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

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

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.

Public methods

createControlsRowAndPresenter

PlaybackControlsRowPresenter createControlsRowAndPresenter ()

实例化 PlaybackControlsRow和相应的 PlaybackControlsRowPresenter助手方法。

Returns
PlaybackControlsRowPresenter

enableProgressUpdating

void enableProgressUpdating (boolean enable)

重写此操作以启动/停止可运行程序,以 updateProgress()为间隔调用 getUpdatePeriod()

Parameters
enable boolean

getContext

Context getContext ()

返回上下文。

Returns
Context

getControlsRow

PlaybackControlsRow getControlsRow ()

返回由胶合层管理的播放控件行。

Returns
PlaybackControlsRow

getCurrentPosition

int getCurrentPosition ()

以毫秒为单位返回媒体项目的当前位置。

Returns
int

getCurrentSpeedId

int getCurrentSpeedId ()

返回当前的播放速度。 正常播放时,应返回PLAYBACK_SPEED_NORMAL

Returns
int

getFastForwardSpeeds

int[] getFastForwardSpeeds ()

返回快进速度。

Returns
int[]

getFragment

PlaybackOverlayFragment getFragment ()

返回片段。

Returns
PlaybackOverlayFragment

getMediaArt

Drawable getMediaArt ()

返回媒体项目的艺术位图。

Returns
Drawable

getMediaDuration

int getMediaDuration ()

以毫秒为单位返回媒体项目的持续时间。

Returns
int

getMediaSubtitle

CharSequence getMediaSubtitle ()

返回媒体项目的副标题。

Returns
CharSequence

getMediaTitle

CharSequence getMediaTitle ()

返回媒体项目的标题。

Returns
CharSequence

getOnItemViewClickedListener

OnItemViewClickedListener getOnItemViewClickedListener ()

返回 OnItemViewClickedListener

Returns
OnItemViewClickedListener

getRewindSpeeds

int[] getRewindSpeeds ()

返回快退速度。

Returns
int[]

getSupportedActions

long getSupportedActions ()

返回媒体播放器支持的操作的位掩码。

Returns
long

getUpdatePeriod

int getUpdatePeriod ()

返回应该用于更新进度的时间段(以毫秒为单位)。 updateProgress()

Returns
int

hasValidMedia

boolean hasValidMedia ()

如果存在有效的媒体项目,则返回true。

Returns
boolean

isFadingEnabled

boolean isFadingEnabled ()

如果在播放媒体时将控件设置为淡出,则返回true。

Returns
boolean

isMediaPlaying

boolean isMediaPlaying ()

如果媒体正在播放,则返回true。

Returns
boolean

onActionClicked

void onActionClicked (Action action)

处理动作点击。 一个子类可以重写这个添加对其他操作的支持。

Parameters
action Action

onKey

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.

setControlsRow

void setControlsRow (PlaybackControlsRow controlsRow)

设置控制行由胶合层管理。 该行的主要操作和播放状态相关方面由胶水更新。

Parameters
controlsRow PlaybackControlsRow

setFadingEnabled

void setFadingEnabled (boolean enable)

将媒体播放时的控件设置为在超时后淡出。

Parameters
enable boolean

setOnItemViewClickedListener

void setOnItemViewClickedListener (OnItemViewClickedListener listener)

此方法已弃用。
不要称这个。 您可以自己将侦听器设置在片段上,然后致电onActionClicked(Action)来处理点击。

如果点击事件没有在内部处理,请设置 OnItemViewClickedListener被调用。

updateProgress

void updateProgress ()

根据当前媒体播放位置更新进度条。

Protected methods

createPrimaryActionsAdapter

SparseArrayObjectAdapter createPrimaryActionsAdapter (PresenterSelector presenterSelector)

创建主要操作适配器。 可能会被覆盖以将其他主要操作添加到适配器。

Parameters
presenterSelector PresenterSelector
Returns
SparseArrayObjectAdapter

onMetadataChanged

void onMetadataChanged ()

当元数据状态发生变化时,必须由子类适当调用。

onRowChanged

void onRowChanged (PlaybackControlsRow row)

播放控件行更改时调用。 应该通知包含该行的适配器。

Parameters
row PlaybackControlsRow

onStateChanged

void onStateChanged ()

播放状态改变时,必须由子类适当调用。

pausePlayback

void pausePlayback ()

暂停播放。

skipToNext

void skipToNext ()

跳至下一首曲目。

skipToPrevious

void skipToPrevious ()

跳到上一首曲目。

startPlayback

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.

Hooray!