3 berichten aan het bekijken - 1 tot 3 (van in totaal 3)
  • Q:
    Bijdrager
    PipoDeClown

    Video blijft afspelen in MPMoviePlayer na klikken op ‘done’.

    Ik ben bezig met een applicatie te schrijven waarin ik een lijstje met video-urls ophaal en deze laat zien in een table view met screenshots. Als ik een video selecteer gaat deze fullscreen landscape afspelen. Zodra ik weer terug wil naar het lijstje met videos druk ik op ‘done’ of wacht ik tot de video klaar is. Niks raars tot nu toe… maar nu komt het:

    Als ik op ‘done’ druk terwijl de video (om welke reden dan ook) aan het bufferen is, gaat de applicatie wel terug naar het lijstje… maar de video blijft op de achtergrond spelen (ik hoor namelijk nadat het bufferen klaar is het geluid lopen) en wordt kennelijk niet gestopt door het selecteren van ‘done’.

    Wanneer ik op ‘done’ druk terwijl de video speelt is er niks aan de hand.

    Iemand enig idee hoe ik dit kan oplossen of omheen kan werken?

    Bij voorbaat dank!

    Bijdrager
    topaj

    Heb je in je header wel de MPMoviePlayerDelegate toegevoegd?
    Dus: <MPMoviePlayerDelegate>

    In je header moet je ff ‘theMovie’ aanmaken,
    doe dit zo : MPMoviePlayer * theMovie;

    Je moet je video zo starten:
    [code:1:51ca333fb6]-(IBAction)start
    {
    NSURL *movie = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"video" ofType:@"mp4"]];
    MPMoviePlayerController * theMovie = [[MPMoviePlayerController alloc] initWithContentURL:movie];
    [theMovie setScalingMode:MPMovieScalingModeAspectFill];
    [[NSNotificationCenter defaultCenter] addObserver:self
    selector:@selector(myMovieFinishedCallback:)
    name:MPMoviePlayerPlaybackDidFinishNotification
    object:theMovie];

    [theMovie play];
    }[/code:1:51ca333fb6]

    Daarboven plaats je:
    [code:1:51ca333fb6]
    -(void)myMovieFinishedCallback:(NSNotification*)aNotification
    {
    MPMoviePlayerController* theMovie=[aNotification object];
    [[NSNotificationCenter defaultCenter] removeObserver:self
    name:MPMoviePlayerPlaybackDidFinishNotification
    object:theMovie];

    // Release the movie instance created in playMovieAtURL
    [theMovie release];
    }[/code:1:51ca333fb6]

    Bijdrager
    HerQ

    Delegation is hier niet aan de orde, het MPMoviePlayerDelegate protocol bestaat niet eens en zoals je zelf al aangeeft werk je met NSNotificationCenter, niet met delegates.

    Daarnaast heb je al een ivar aangemaakt, dan moet je in je code niet opnieuw het type aangeven. Ook moet je ivar van type MPMoviePlayerController zijn, MPMoviePlayer bestaat niet.

3 berichten aan het bekijken - 1 tot 3 (van in totaal 3)

Je moet ingelogd zijn om een reactie op dit onderwerp te kunnen geven.