Это из MediaPlayer.h в источнике Android:
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_DECODED = 1 << 4,
MEDIA_PLAYER_STARTED = 1 << 5,
MEDIA_PLAYER_PAUSED = 1 << 6,
MEDIA_PLAYER_STOPPED = 1 << 7,
MEDIA_PLAYER_PLAYBACK_COMPLETE = 1 << 8
};
Поэтому 0 будет MEDIA_PLAYER_STATE_ERROR, а 4 будет MEDIA_PLAYER_PREPARING.Вы вызывали prepare () или prepareAsync () перед вызовом start ()?
Это состояния MediaRecorder:
enum media_recorder_states {
MEDIA_RECORDER_ERROR = 0,
MEDIA_RECORDER_IDLE = 1 << 0,
MEDIA_RECORDER_INITIALIZED = 1 << 1,
MEDIA_RECORDER_DATASOURCE_CONFIGURED = 1 << 2,
MEDIA_RECORDER_PREPARED = 1 << 3,
MEDIA_RECORDER_RECORDING = 1 << 4,
};
Поэтому для записи состояние 4 равно MEDIA_RECORDER_DATASOURCE_CONFIGURED.