谁知道Android媒体播放器在LogCat中按其int值表示?

Aud*_*oid 5 java android android-mediaplayer

我有一个使用Android MediaPlayer类的实现.我不断碰到各种错误,更改代码,碰到另一个错误.根据错误,我从MediaPlayer收到报告的LogCat错误消息:

" xyz在状态x中调用".

我不想为我碰到的每个bug发布一个帖子,我宁愿把它全部搞定,并自己修复bug.但我找不到任何可以告诉我哪个州号映射到哪个州的文件,正如MediaPlayer在线文档中所描述的那样.

有人可以发布这样的列表的链接,或在这篇文章中提供列表吗?我想我不会是唯一会欣赏这一点的人.

Mic*_*ael 10

这些是当前在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
};
Run Code Online (Sandbox Code Playgroud)

  • 如果错误报告使用了它,为什么文档中没有它!?在他们的马铃薯质量状态图中添加数字并不难。 (2认同)

sco*_*ttt 5

基于迈克尔的回答,这里是声明的状态,为每个移位位添加十进制值。是的,它们计算起来很简单,但这在解析 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
};
Run Code Online (Sandbox Code Playgroud)