initialPlaybackTime на MPMoviePlayerController не работи

Опитвам се да пусна филм с MPMovieplayercontroller. Всичко е наред с изключение на „initialPlaybackTime“. Вместо да започне да играе от дадените секунди, играчът играе от началото.

Как да накарам "initialPlaybackTime" да работи?

-(void)viewDidLoad
{
    [super viewDidLoad];
    NSString *moviePath= [[NSBundle mainBundle] pathForResource:@"02_Skater" ofType:@"mp4"];
    NSURL *url = [NSURL fileURLWithPath:moviePath] ;
    // video player
    playerViewController = [[MPMoviePlayerController alloc] init];
    playerViewController.contentURL = url;
    playerViewController.view.frame = CGRectMake(0, 200, 300, 300);

    playerViewController.scalingMode = MPMovieScalingModeAspectFit;
    playerViewController.initialPlaybackTime = 3;
    playerViewController.endPlaybackTime = 4;
    playerViewController.controlStyle=MPMovieControlStyleNone;
    [playerViewController prepareToPlay];


    [playerViewController play];
    [[self view] addSubview: [playerViewController view]];

    // Do any additional setup after loading the view, typically from a nib.
}

person 2vision2    schedule 07.08.2014    source източник
comment
Има ли принос от някого?   -  person 2vision2    schedule 08.08.2014
comment
Може ли някой да ми помогне?   -  person 2vision2    schedule 22.08.2014


Отговори (2)


Ако проверите документацията на Apple, можете да прочетете, че:

„За съдържанието на видео по заявка, възпроизвеждането започва от най-близката граница на сегмента до предоставеното време.“

person ppalancica    schedule 07.08.2014
comment
Благодаря за коментара. Вярно е, но винаги започва от нулево време, независимо от стойността, която съм задал за initialPlaybackTime. - person 2vision2; 07.08.2014
comment
Какво общо има VOD с възпроизвеждането на статичен MP4 видео файл? - person Mecki; 08.12.2014

Новите актуализации след iOS 8.4 имат тези проблеми и все още тези грешки са живи в новия iOS 9.0

В момента намерих решение, което все още е незавършено, защото все още не можете да зададете крайния си час на видеото. по някакъв начин това решение може да ви позволи да зададете "initialPlaybackTime"

Първо добавете наблюдател към вашия mediaPLayer

//Add Observer
    [[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(moviePlayerPlaybackStateChanged:)
                                                 name:MPMoviePlayerPlaybackStateDidChangeNotification
                                               object:mediaPlayerController];

и напишете този метод за уведомяване

BOOL playbackDurationSet=NO;
-(void)moviePlayerPlaybackStateChanged:(NSNotification*)notification{
    MPMoviePlayerController* player = (MPMoviePlayerController*)notification.object;

    switch ( player.playbackState ) {
        case MPMoviePlaybackStatePlaying:

            if(!playbackDurationSet){
                [mediaPlayerController setCurrentPlaybackTime:player.initialPlaybackTime];
                playbackDurationSet=YES;
            }
            break;

         default:
            break;
    }
}

-(void)resetPlayerDurationVar{
    playbackDurationSet=NO;
}
person Waqas Haider Sheikh    schedule 20.09.2015