17

No, dropping the videos to

~/Library/Application Support/iPhone Simulator/3.2/Media/DCIM/100APPLE

does not work totally, because the simulator can see the video on Photos.app, but when I try to pick a video using UIImagePickerController my application crashes.

I think this may have some relation to the format the video has to have. I am using QuickTime to generate the video. I am using the settings "for iPhone"... so it is generating a M4V with 480x360 pixels H264. I have tried to create a MOV with the same characteristics and one with 640x480 but nothing works. I have also dropped a movie created with iPhone 3GS and it still crashes.

I have the file named as VID_0001.MOV, all uppercase.

this is the error I see when it crashes

*** Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[NSCFArray objectAtIndex:]: index (1) beyond bounds (0)'

the method didFinishPickingMediaWithInfo is never called, so its some issue on the simulator or on the video. The app crashes as soon as I pick the video.

No solution for this question? c'mon guys! :-)

thanks.

Duck
  • 34,902
  • 47
  • 248
  • 470
  • 2
    Hey Mike, are you sure dropping a m4v video to simulator location: "~/Library/Application Support/iPhone Simulator/3.2/Media/DCIM/100APPLE" will display the video in Photos application? I am not able to add video to iPhone Simulator, any suggestions? – Raj Pawan Gumdal May 03 '10 at 06:49

4 Answers4

60

Took a sec (and some deviousness) but I figured it out. Put a video file into your application's Documents directory, I tried a .MOV but that didn't work, a .m4v worked. Then put this early in your app (I just stuck it in application:didFinishLaunchingWithOptions):

    NSString *path = [NSHomeDirectory() stringByAppendingPathComponent:[NSString stringWithFormat:@"Documents/myMovie.m4v"]];
    UISaveVideoAtPathToSavedPhotosAlbum(path, self, @selector(video:didFinishSavingWithError:contextInfo:), nil);

And add this function (so you can see if an error happened and why):

- (void)video:(NSString *)videoPath didFinishSavingWithError:(NSError *)error contextInfo:(void *)contextInfo {
    if (error != nil) {
        NSLog(@"Error: %@", error);
    }
}

Worked like a charm, I now have a video in my 'Saved Photos' on the simulator.

Shizam
  • 9,627
  • 8
  • 51
  • 82
  • Worked great. To find a video that would work, I tried them out in QuickTime first - if QT could open it, and do a file-save-as "iPhone", that worked. Vids that QT couldn't open (missing codec), I gave up tryign to get onto iPhone - but I just needed something for debugging :) – Adam Feb 18 '11 at 17:25
  • thanks it worked for me but i saved .3gp video .m4v file did n't worked for me. – Leena Nov 25 '11 at 11:39
  • 2
    It's easier to just drop the video onto the project and replace the first line of code with this: `NSString* path = [[NSBundle mainBundle] pathForResource:@"myMovie" ofType:@"m4v"];` – dev_jac Mar 19 '13 at 13:57
  • 1
    Hi, where exactly do I place the m4v? – the_summer_bee Apr 29 '13 at 09:39
31

Download any video that have extension .mov onto your desktop. Then open simulator, drag and drop video into simulator. Video will play after that.

Now, you can stop the video and save it into camera roll.

fyasar
  • 3,996
  • 2
  • 42
  • 55
7

This is the way to do it:

First Drag and drop a image or movie into the Simulator window and safari will open with the image you droped in. Then press the share button in the safari tool bar and then click the "Save To Camera Roll Button" and then go to your home Screen and click on the photos app (the one with the flower on it) and go to your saved Photos and there it is!

Ryan C.
  • 71
  • 1
  • 3
1

As of iOS 12, the trick seems to be opening mobile Safari, dragging the .mov file onto it in the simulator, and then it opens up the Photos app and you'll see the video there. (Dragging and dropping directly on the Photos app doesn't work for me, for some reason.)

Mason G. Zhwiti
  • 6,444
  • 11
  • 61
  • 97