почему MPMovieLoadState имеет состояние 5? - PullRequest
10 голосов
/ 29 июня 2010

Я нахожу MPMoviePlayerController.h, есть

enum {
    MPMovieLoadStateUnknown        = 0,
    MPMovieLoadStatePlayable       = 1 << 0,
    MPMovieLoadStatePlaythroughOK  = 1 << 1, // Playback will be automatically started in this state when shouldAutoplay is YES
    MPMovieLoadStateStalled        = 1 << 2, // Playback will be automatically paused in this state, if started
};
typedef NSInteger MPMovieLoadState;

, но когда я сделал

NSLog(@"%d",player.loadState)

, он печатает 5 или иногда 3, как это сделалбывает? Насколько я знаю, loadstate имеет значение 0,1,2,4, обратитесь к документации разработчика.Спасибо!

1 Ответ

29 голосов
/ 29 июня 2010

PlayState является битовой маской. Может быть установлено любое количество битов, например

MPMovieLoadStatePlaythroughOK | MPMovieLoadStatePlayable

Проверьте для состояний как это:

MPMovieLoadState state = [playerController loadState];
if( state & MPMovieLoadStatePlaythroughOK ) {
        NSLog(@"State is Playthrough OK");
} 
...