WebHU - Programozási kérdések és válaszok

hogyan lehet videofájlt lejátszani az ipad alkalmazás dokumentummappájából

Videót rögzítek, és elmentem a dokumentumok mappába, és később szeretném lejátszani a videó elérési útját használva, de nem játssza le, a következő kódot használom a fájl elérési útjának lekéréséhez a dokumentumok mappában, majd lejátsszam

          NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
      NSString *documentsDirectory = [paths objectAtIndex:0];



      NSDateFormatter *dateFormat = [[[NSDateFormatter alloc] init] autorelease];
        [dateFormat setDateFormat:@"dd-MM-yyyy||HH:mm:SS"];
      NSDate *now = [[[NSDate alloc] init] autorelease];
      NSDate* theDate = [dateFormat stringFromDate:now];
      NSString *dataPath = [documentsDirectory stringByAppendingPathComponent:@"Default Album"];
     if (![[NSFileManager defaultManager] fileExistsAtPath:dataPath])
            [[NSFileManager defaultManager] createDirectoryAtPath:dataPath withIntermediateDirectories:NO attributes:nil error:nil];
     NSString *videopath= [[[NSString alloc] initWithString:[NSString stringWithFormat:@"%@/%@.mov",documentsDirectory,theDate]] autorelease];
     NSLog(@"Vide Path %@",videopath);
     NSString *path = [[NSBundle mainBundle] pathForResource:videopath ofType:@"mov" inDirectory:nil];
     NSURL *movieURL = [NSURL fileURLWithPath:path];
     player= [[ MPMoviePlayerViewController alloc] initWithContentURL:movieURL];
     [self presentMoviePlayerViewControllerAnimated:player];

tudna nekem segíteni köszönöm.


  • kódodból nem mentetted el a videódat. 17.04.2013
  • @Vedchi Videót rögzítek az ipad-ről, majd megnyomom a használati gombot, és ment 17.04.2013
  • @Vedchi, kérlek segíts nekem megoldani ezt? 17.04.2013
  • akkor használja azt az elérési utat, amellyel a videót a dokumentumkönyvtárba mentette, ne a fentebb megszerkesztett elérési utat. Az NSDateFormatter & NSDate használatával új elérési utat hoz létre, amely valójában nem létezik a dokumentumok könyvtárában. 17.04.2013

Válaszok:


1

Ehelyett

NSString *videopath = [[[NSString alloc] initWithString:[NSString stringWithFormat:@"%@/%@.mov",documentsDirectory,theDate]] autorelease];

kipróbálhatja .mov kiterjesztése nélkül. Mert ebben a sorban megmondja a kiterjesztést.

NSString *path = [[NSBundle mainBundle] pathForResource:videopath ofType:@"mov" inDirectory:nil];

Megjegyzés: Ebben a sorban

player = [[MPMoviePlayerViewController alloc] initWithContentURL:movieURL];

Ha a lejátszó megőrizte a tulajdonát, az memóriaszivárgást okoz.

17.04.2013
  • hibaüzenetet ad az alkalmazás leállítása az 'NSInvalidArgumentException' nem elkapott kivétel miatt, oka: '*** -[NSURL initFileURLWithPath:]: nulla karakterlánc paraméter' 17.04.2013
  • Az NSLOg videó elérési útja: Vide Path /Users/malikwahajahmed/Library/Application Support/iPhone Simulator/4.2/Applications/18A4A444-9F5D-4910-91EE-237918F46CD0/Documents/17-04-2013|:|14:mov0|14. 17.04.2013
  • E stringWithFormat:@"%@/%@.mov" helyett használja ezt a stringWithFormat:@"%@\'/%@.mov". És nem látom a szerkesztett kódot, visszaállítottad a régi kódoddal? 17.04.2013
  • megjegyzésbe írja ezt a sort NSString *path = [[NSBundle mainBundle] pathForResource:videopath ofType:@"mov" inDirectory:nil]; és próbálkozzon még egyszer.. és cserélje ki a path szót videopath-ra a [NSURL initFileURLWithPath:] 17.04.2013
  • Utolsó próbálkozás. [dateFormat setDateFormat:@"dd-MM-yyyy||HH:mm:SS"];, módosítsa a formázást erre: @"dd-MM-yyyy_HH:mm:SS" 17.04.2013

  • 2

    először is hozzá kell adnia a mediaplayer keretrendszert a projekthez, majd hozzá kell adnia az import utasítást

    #import <MediaPlayer/MediaPlayer.h>
    

    majd kövesse az alábbi kódot

            MPMoviePlayerViewController *playerVC = [[MPMoviePlayerViewController alloc] initWithContentURL:[NSURL URLWithString:aVideoUrl]];
    
    
    
            // Register this class as an observer instead
        [[NSNotificationCenter defaultCenter] addObserver:self
                                                 selector:@selector(movieFinishedCallback:)
                                                     name:MPMoviePlayerPlaybackDidFinishNotification
                                                   object:playerVC.moviePlayer];
    
    
            // Set the modal transition style of your choice
            //playerVC.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
    
            [self presentMoviePlayerViewControllerAnimated:playerVC];
            [playerVC.moviePlayer prepareToPlay];
            [playerVC.moviePlayer play];
            [playerVC.moviePlayer setControlStyle:MPMovieControlStyleFullscreen];
    
    
    
    - (void)movieFinishedCallback:(NSNotification*)aNotification
    {
        // Obtain the reason why the movie playback finished
        NSNumber *finishReason = [[aNotification userInfo] objectForKey:MPMoviePlayerPlaybackDidFinishReasonUserInfoKey];
    
        // Dismiss the view controller ONLY when the reason is not "playback ended"
        if ([finishReason intValue] != MPMovieFinishReasonPlaybackEnded)
        {
            MPMoviePlayerController *moviePlayer = [aNotification object];
    
            // Remove this class from the observers
            [[NSNotificationCenter defaultCenter] removeObserver:self
                                                            name:MPMoviePlayerPlaybackDidFinishNotification
                                                          object:moviePlayer];
    
            // Dismiss the view controller
            [self dismissModalViewControllerAnimated:YES];
        }
    }
    
    17.04.2013
    Új anyagok

    A rádiógomb ellenőrzött eseményének használata a jQueryben
    Ebben a cikkben látni fogjuk, hogyan kell dolgozni a jquery választógombbal ellenőrzött eseményeivel. A választógombok HTML gombok, amelyek segítenek kiválasztani egyetlen értéket egy csoportból...

    Körkörös függőségek megoldása terraformban adatforrásokkal – lépésről lépésre
    Mi az a körkörös függőségek Dolgozzunk egy egyszerű eseten, amikor az SQS-sor és az S3-vödör közötti körkörös függőség problémája van egy egymástól függő címkeérték miatt. provider..

    Miért érdemes elkezdeni a kódolást 2023-ban?
    01100011 01101111 01100100 01100101 — beep boop beep boop Világunk folyamatosan fejlődik a technológia körül, és naponta fejlesztenek új technológiákat a valós problémák megoldására. Amint..

    🎙 Random Noise #2  – Örökbefogadás és hit
    az analitika íratlan világának gondozása Szeretné, hogy ezek a frissítések a postaládájába kerüljenek? Iratkozzon fel itt . "Ha önvezető autókat gyártanak, akkor mi miért ne..

    A legrosszabb politika és prediktív modellek májátültetésre jelöltek számára az Egyesült Államokban
    A máj (vagy óangolul lifer) az emberi test legnehezebb belső szervére utal, amely csendesen működik a nap 24 órájában. Mit csinál a máj? 500 feladatot hajt végre a szervezet egészségének..

    5 webhely, amely 2022-ben fejleszti front-end fejlesztői készségeit
    Frontendmentor.io A tényleges projektek létrehozásával a Frontendmentor.io segítséget nyújt a front-end kódolási képességeinek fejlesztésében. A kódolást azután kezdheti meg, hogy..

    Mikor kell használni a Type-t az interfészhez képest a TypeScriptben?
    A TypeScript a JavaScript gépelt szuperkészlete, amely statikus gépelést ad a nyelvhez. Ez megkönnyíti a robusztus és karbantartható kód írását azáltal, hogy a hibákat a fordítási időben..