我有一个使用Android MediaPlayer类的实现。我不断碰到各种错误,更改代码,碰到另一个错误。根据错误,我收到从MediaPlayer报告的LogCat错误消息:
“xyz在状态x中调用”。
我不想为我碰到的每个bug发布一个帖子,我宁愿把它全部搞定,并自己修复bug。但我找不到任何可以告诉我哪个州号映射到哪个州的文件,正如MediaPlayer在线文档中所描述的那样。
有人可以发布这样的列表的链接,或在这篇文章中提供列表吗?我想我不会是唯一会欣赏这一点的人。
这些是目前在AOSP主分支机构mediaplayer.h宣布的州:
enum media_player_states {
MEDIA_PLAYER_STATE_ERROR = 0,
MEDIA_PLAYER_IDLE = 1 << 0,
MEDIA_PLAYER_INITIALIZED = 1 << 1,
MEDIA_PLAYER_PREPARING = 1 << 2,
MEDIA_PLAYER_PREPARED = 1 << 3,
MEDIA_PLAYER_STARTED = 1 << 4,
MEDIA_PLAYER_PAUSED = 1 << 5,
MEDIA_PLAYER_STOPPED = 1 << 6,
MEDIA_PLAYER_PLAYBACK_COMPLETE = 1 << 7
};
基于迈克尔的答案,这里是声明的状态,为每个移位的位添加了十进制值。是的,它们很容易计算,但这可以节省解决LogCat消息时的额外步骤。
enum media_player_states {
MEDIA_PLAYER_STATE_ERROR = 0, // 0
MEDIA_PLAYER_IDLE = 1 << 0, // 1
MEDIA_PLAYER_INITIALIZED = 1 << 1, // 2
MEDIA_PLAYER_PREPARING = 1 << 2, // 4
MEDIA_PLAYER_PREPARED = 1 << 3, // 8
MEDIA_PLAYER_STARTED = 1 << 4, // 16
MEDIA_PLAYER_PAUSED = 1 << 5, // 32
MEDIA_PLAYER_STOPPED = 1 << 6, // 64
MEDIA_PLAYER_PLAYBACK_COMPLETE = 1 << 7 // 128
};
http://developer.android.com/reference/android/media/MediaPlayer.html
例如
public static final int MEDIA_ERROR_IO
在API级别17中添加了文件或网络相关的操作错误。
常数值:-1004(0xfffffc14)