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

问题描述 投票:5回答:3

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

“xyz在状态x中调用”。

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

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

java android android-mediaplayer
3个回答
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
};

1
投票

基于迈克尔的答案,这里是声明的状态,为每个移位的位添加了十进制值。是的,它们很容易计算,但这可以节省解决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
};

0
投票

http://developer.android.com/reference/android/media/MediaPlayer.html

例如

public static final int MEDIA_ERROR_IO

在API级别17中添加了文件或网络相关的操作错误。

常数值:-1004(0xfffffc14)

© www.soinside.com 2019 - 2024. All rights reserved.