public final class MediaItemStatus
extends Object
java.lang.Object | |
↳ | android.support.v7.media.MediaItemStatus |
介绍媒体项目的播放状态。
该类是 MediaControlIntent
类所描述的远程回放协议的 MediaControlIntent
。
作为一个媒体项目播放时,它通过过渡状态,包括序列: pending
, buffering
, playing
, paused
, finished
, canceled
, invalidated
,并error
。 请参阅每个州的文件以获取其含义的解释。
播放项目时,播放状态还可能包含有关 content position
和 content duration
进度信息,但并非所有路线目的地都会报告。
为了监视播放状态,应用程序应该提供一个PendingIntent
为使用item status update receiver
对于给定playback request
。 请注意,状态更新接收器仅在主要状态更改(例如从播放转换到完成时)时才会被调用。
状态更新接收器不会被用于较小的进度更新,例如更改播放位置或持续时间。 如果应用程序想要监视播放进度,则必须使用get status request
定期轮询更改并估计播放时的播放位置。 请注意,可能会对轮询产生重大影响,因此建议应用程序仅在屏幕打开时进行轮询,并且每5秒钟不要超过约一次。
一旦使用 MediaItemStatus.Builder
实例创建该对象是不可变的。
Nested classes |
|
---|---|
class |
MediaItemStatus.Builder |
Constants |
|
---|---|
String |
EXTRA_HTTP_RESPONSE_HEADERS Bundle extra:HTTP响应头。 |
String |
EXTRA_HTTP_STATUS_CODE 整数额外:HTTP状态码。 |
int |
PLAYBACK_STATE_BUFFERING 播放状态:缓冲或寻找到新的位置。 |
int |
PLAYBACK_STATE_CANCELED 播放状态:取消。 |
int |
PLAYBACK_STATE_ERROR 播放状态:播放暂停或由于错误而中止。 |
int |
PLAYBACK_STATE_FINISHED 播放状态:完成。 |
int |
PLAYBACK_STATE_INVALIDATED 播放状态:无效。 |
int |
PLAYBACK_STATE_PAUSED 播放状态:已暂停。 |
int |
PLAYBACK_STATE_PENDING 播放状态:待处理。 |
int |
PLAYBACK_STATE_PLAYING 播放状态:正在播放。 |
Public methods |
|
---|---|
Bundle |
asBundle() 将此对象转换为序列化包。 |
static MediaItemStatus |
fromBundle(Bundle bundle) 从一个包创建一个实例。 |
long |
getContentDuration() 获取要播放的内容的总持续时间,为长整数毫秒。 |
long |
getContentPosition() 从内容的开始处获取内容播放位置为一个长整数毫秒。 |
Bundle |
getExtras() 获取此状态对象的一系列附加内容。 |
int |
getPlaybackState() 获取媒体项目的播放状态。 |
long |
getTimestamp() 获取自 |
String |
toString() 返回对象的字符串表示形式。 |
Inherited methods |
|
---|---|
From class java.lang.Object
|
String EXTRA_HTTP_RESPONSE_HEADERS
Bundle extra:HTTP响应头。
指定从网络请求内容时返回的HTTP响应标头。 标题可能包含有关内容的附加信息或尝试获取内容时遇到的任何错误条件。
该值是描述HTTP响应头的基于字符串的键值对的 Bundle
。
常量值:“android.media.status.extra.HTTP_RESPONSE_HEADERS”
String EXTRA_HTTP_STATUS_CODE
整数额外:HTTP状态码。
指定在遵循所有重定向后请求内容时遇到的HTTP状态码。 只有在内容URI使用HTTP或HTTPS方案并且发生错误时才需要指定此密钥。 如果内容能够成功播放,则可以省略此键; 不需要报告200(OK)状态码。
该值是整数HTTP状态代码,例如401(未授权),404(未找到)或500(服务器错误),如果没有,则为0。
常量值:“android.media.status.extra.HTTP_STATUS_CODE”
int PLAYBACK_STATE_BUFFERING
播放状态:缓冲或寻找到新的位置。
表示媒体项目已暂时中断以提取更多内容。 当足够的内容被缓冲时,播放将自动继续。
常量值:3(0x00000003)
int PLAYBACK_STATE_CANCELED
播放状态:取消。
表示该应用程序显式地将该媒体项目从队列中删除。 可以使用remove
或stop
操作取消项目并将其从队列中删除,或者发出另一个具有清除队列副作用的play
操作。
取消的媒体项目无法恢复。 要再次播放内容,应用程序必须发送新的play
或enqueue
操作。
常量值:5(0x00000005)
int PLAYBACK_STATE_ERROR
播放状态:播放暂停或由于错误而中止。
尝试从服务器检索内容时出现错误的示例是无网络连接,或尝试播放基于订阅的内容时出现过期的用户凭据。
处于错误状态的媒体项目无法恢复。 要再次播放内容,应用程序必须发送新的play
或enqueue
操作。
常量值:7(0x00000007)
int PLAYBACK_STATE_FINISHED
播放状态:完成。
表示媒体项目播放到内容结尾并正常结束。
完成的媒体项目无法恢复。 要再次播放内容,应用程序必须发送新的play
或enqueue
操作。
常量值:4(0x00000004)
int PLAYBACK_STATE_INVALIDATED
播放状态:无效。
表示媒体项目已被永久和非自愿无效。 此状态用于指示媒体项目已失效并从队列中删除,因为它所属的会话已失效(通常由另一个控制该路由的应用程序)。
发生失效时,应用程序通常应等待用户执行显式操作,例如单击UI中的播放按钮,然后再创建新的媒体会话,以避免不必要地中断可能刚刚开始使用路由的其他应用程序。
无效的媒体项目无法恢复。 要再次播放内容,应用程序必须发送新的play
或enqueue
动作。
常数值:6(0x00000006)
int PLAYBACK_STATE_PAUSED
播放状态:已暂停。
表示媒体项目的播放已暂停。 播放可以使用resume
操作重新开始。
常量值:2(0x00000002)
int PLAYBACK_STATE_PENDING
播放状态:待处理。
表示媒体项目尚未开始播放,但会最终播放。
常量值:0(0x00000000)
int PLAYBACK_STATE_PLAYING
播放状态:正在播放。
表示媒体项目正在播放。
常数值:1(0x00000001)
Bundle asBundle ()
将此对象转换为序列化包。
Returns | |
---|---|
Bundle |
The contents of the object represented as a bundle. |
MediaItemStatus fromBundle (Bundle bundle)
从一个包创建一个实例。
Parameters | |
---|---|
bundle |
Bundle : The bundle, or null if none. |
Returns | |
---|---|
MediaItemStatus |
The new instance, or null if the bundle was null. |
long getContentDuration ()
获取要播放的内容的总持续时间,为长整数毫秒。
Returns | |
---|---|
long |
The content duration in milliseconds, or -1 if unknown. |
long getContentPosition ()
从内容的开始处获取内容播放位置为一个长整数毫秒。
Returns | |
---|---|
long |
The content playback position in milliseconds, or -1 if unknown. |
int getPlaybackState ()
获取媒体项目的播放状态。
Returns | |
---|---|
int |
The playback state. One of PLAYBACK_STATE_PENDING , PLAYBACK_STATE_PLAYING , PLAYBACK_STATE_PAUSED , PLAYBACK_STATE_BUFFERING , PLAYBACK_STATE_FINISHED , PLAYBACK_STATE_CANCELED , PLAYBACK_STATE_INVALIDATED , or PLAYBACK_STATE_ERROR . |
long getTimestamp ()
获取与自 elapsedRealtime()
时基中的引导以来的状态信息相关的时间戳(以毫秒为单位)。
Returns | |
---|---|
long |
The status timestamp in the elapsedRealtime() time base. |
String toString ()
返回对象的字符串表示形式。 一般来说, toString
方法会返回一个“文本表示”该对象的字符串。 结果应该是一个简洁但内容丰富的表述,对于一个人来说很容易阅读。 建议所有子类重写此方法。
类Object
的toString
方法返回一个字符串,其中包含对象为实例的类的名称,符号字符“ @
”以及对象的哈希代码的无符号十六进制表示形式。 换句话说,这个方法返回一个字符串,其值等于:
getClass().getName() + '@' + Integer.toHexString(hashCode())
Returns | |
---|---|
String |
a string representation of the object. |