2015-12-29 69 views
-2

你好,我需要建立應用程序,從iPhone攝像頭錄製視頻。
我在網上搜索,並沒有發現無一不是工作在iOS版9 我從這個Git項目驗證碼: https://github.com/versluis/Video-Recorder如何在iOS 9目標c中記錄iPhone攝像頭的視頻?

此代碼開放的攝像頭,但不會允許我拍攝錄像。

- (IBAction)recordButton:(id)sender { 

if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) { 

    UIImagePickerController *picker = [[UIImagePickerController alloc]init]; 
    picker.sourceType = UIImagePickerControllerSourceTypeCamera; 
    picker.delegate = self; 
    picker.allowsEditing = NO; 

    NSArray *mediaTypes = [[NSArray alloc]initWithObjects:(NSString *)kUTTypeMovie, nil]; 

    picker.mediaTypes = mediaTypes; 

    [self presentViewController:picker animated:YES completion:nil]; 

} else { 

    UIAlertView *alertView = [[UIAlertView alloc]initWithTitle:nil message:@"I'm afraid there's no camera on this device!" delegate:nil cancelButtonTitle:@"Dang!" otherButtonTitles:nil, nil]; 
    [alertView show]; 
    } 
} 

- (IBAction)playbackButton:(id)sender { 

// pick a video from the documents directory 
NSURL *video = [self grabFileURL:@"video.mov"]; 

// create a movie player view controller 
MPMoviePlayerViewController * controller = [[MPMoviePlayerViewController alloc]initWithContentURL:video]; 
[controller.moviePlayer prepareToPlay]; 
[controller.moviePlayer play]; 

// and present it 
[self presentMoviePlayerViewControllerAnimated:controller]; 

} 


#pragma mark - Delegate Methods 

- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker { 

// user hit cancel 
[self dismissViewControllerAnimated:YES completion:nil]; 
} 

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { 

// grab our movie URL 
NSURL *chosenMovie = [info objectForKey:UIImagePickerControllerMediaURL]; 

// save it to the documents directory 
NSURL *fileURL = [self grabFileURL:@"video.mov"]; 
NSData *movieData = [NSData dataWithContentsOfURL:chosenMovie]; 
[movieData writeToURL:fileURL atomically:YES]; 

// save it to the Camera Roll 
UISaveVideoAtPathToSavedPhotosAlbum([chosenMovie path], nil, nil, nil); 

// and dismiss the picker 
[self dismissViewControllerAnimated:YES completion:nil]; 

} 

- (NSURL*)grabFileURL:(NSString *)fileName { 

// find Documents directory 
NSURL *documentsURL = [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject]; 

// append a file name to it 
documentsURL = [documentsURL URLByAppendingPathComponent:fileName]; 

return documentsURL; 
} 
+0

我編輯問題。 –

回答

5

Ray給了這個很好的教程。希望它有幫助。

相關問題