Как я могу изменить сообщение о загрузке фильма в MPMoviePlayerController?

Когда я запускаю экземпляр MPMoviePlayerController для удаленного URL-адреса, на верхней панели отображается «Загрузка фильма...» — есть ли способ изменить это сообщение на пользовательское?


person jasondoucette    schedule 18.10.2009    source источник
comment
Вы получили какое-либо решение для этого?   -  person Hetal Vora    schedule 14.08.2010


Ответы (1)


Вы можете просто создать UIImageView с изображением, которое вы хотите отобразить (или пометить, или что-то еще), и добавить его в свой MoviePlayerControllerView.

UIImage *loadingScreenImage = [UIImage imageNamed:@"loadingScreen.png"];
loadingScreen = [[UIImageView alloc] initWithImage:loadingScreenImage]; // ivar & property are declared in the interface file
[self.view addSubview:loadingScreen];
[loadingScreen release];

Затем вы можете создать экземпляр проигрывателя фильмов и зарегистрироваться, чтобы получать уведомления при изменении loadState:

moviePlayer =  [[MPMoviePlayerController alloc] initWithContentURL:movie.trailerURL];

if ([moviePlayer respondsToSelector:@selector(loadState)]) {

        [moviePlayer prepareToPlay];

        [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(moviePlayerLoadStateChanged:) name:MPMoviePlayerLoadStateDidChangeNotification object:moviePlayer];}  

Затем в вашем методе уведомления выполните логику, чтобы добавить игрока в представление:

- (void) moviePlayerLoadStateChanged:(NSNotification*)notification 
{
    // Unless state is unknown, start playback
    switch ([moviePlayer loadState]) {
        case MPMovieLoadStateUnknown:
            break;
        case MPMovieLoadStatePlayable:
            // Remove observer
            [[NSNotificationCenter defaultCenter] 
             removeObserver:self
             name:MPMoviePlayerLoadStateDidChangeNotification 
             object:nil];

            // Set frame of movie player
            [moviePlayer.view setFrame:CGRectMake(0, 0, 480, 320)];
            [moviePlayer setControlStyle:MPMovieControlStyleFullscreen];
            [moviePlayer setFullscreen:YES animated:YES];
            [self.view addSubview:[moviePlayer view]];   

            // Play the movie
            [moviePlayer play];
                        ...
}
person Rog    schedule 04.12.2010
comment
Это самый ГЛАДКИЙ эффект для создания начального воспроизведения видео приложения. - person Shiny; 20.05.2012