IOS开发之小实例--创建一个简单的用于视频录制和回放的应用程序
前言:还是看了一下国外的入门IOS文章:《Create a Simple App for Video Recording and Playback》,主要涉及视频录制和回放的功能的基本实现。
iOS的API用于记录和播放视频的对刚入门IOS的新人有点混乱,因为有几个可用的选项。如果你只是想打一个视频,你可以用MediaPlayer的框架,它可以让我们发挥我们的设备本地存储的视频,或从远程位置。但是,如果你需要高级功能,如媒体资产管理,媒体编辑,跟踪管理,和其他人,你必须使用AVFoundation框架。我们会继续的东西简单,通过覆盖MediaPlayer的框架开始。
最重要的是,在MediaPlayer框架,给我们带来了两大类,以显示视频或电影。如果你想立 即显示视频和内联(如子视图比全屏幕较小),你应该使用的MPMoviePlayerController。通过使用的MPMoviePlayerController,播放发生在由电影播放器拥有的视图。您可以将一个电影播放器的观点到你的应用程序拥有的视图。相反,如果你想通过展示视频模式地发挥全屏幕视频,例如,你应该使用MPMoviePlayerViewController类。该MPMoviePlayerViewController课程旨在介绍显示全屏电影的简单视图控制器。
在本教程中,我们将重点放在的MPMoviePlayerController。如果你掌握的基础知识,但 是,你应该利用MPMoviePlayerViewController类没有问题。
先概述一下应用的演示:
像任何其他教程中,我们将构建一个简单的演示应用程序来指导您完成这个概念。演示应用程序是没有花哨的用户界面非常简单。一旦打开,应用程序显示一个屏幕,一个单一的“捕获”按钮。当你轻点按钮,就会弹出视频录制的摄像头。一旦完成了录制,视频在主屏幕自动显示。允许用户播放视频内嵌。很简单,不是吗?
然后我们开始制作这个简单的用于视频录制和回放的应用程序吧
然后下面是这个ViewController.m中完整的代码,就这些代码,没别的代码了:
1 #import "VideoViewController.h" 2 3 // 2、然后倒入需要的类库 4 #import <MediaPlayer/MediaPlayer.h> 5 #import <MobileCoreServices/MobileCoreServices.h> 6 7 @interface VideoViewController () <UIImagePickerControllerDelegate,UINavigationControllerDelegate> 8 9 /** NSURL */ 10 @property (nonatomic,strong)NSURL *videoURL; 11 /** MPMoviePlayerController */ 12 @property (nonatomic,strong)MPMoviePlayerController *videoController; 13 14 @end 15 16 @implementation VideoViewController 17 18 - (void)viewDidLoad { 19 [super viewDidLoad]; 20 } 21 22 // 1、捕获视频 23 - (IBAction)captureVideo:(id)sender { 24 if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) { 25 UIImagePickerController *picker = [[UIImagePickerController alloc] init]; 26 picker.delegate = self; 27 picker.allowsEditing = YES; 28 picker.sourceType = UIImagePickerControllerSourceTypeCamera; 29 picker.mediaTypes = [[NSArray alloc] initWithObjects: (NSString *) kUTTypeMovie, nil]; 30 [self presentViewController:picker animated:YES completion:NULL]; 31 } 32 } 33 34 #pragma mark - UIImagePickerControllerDelegate代理方法 35 - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { 36 37 self.videoURL = info[UIImagePickerControllerMediaURL]; 38 [picker dismissViewControllerAnimated:YES completion:NULL]; 39 40 // 创建播放Video的控制器 41 self.videoController = [[MPMoviePlayerController alloc] init]; 42 43 [self.videoController setContentURL:self.videoURL]; 44 [self.videoController.view \ 45 setFrame:CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width, 320)]; 46 47 [self.view addSubview:self.videoController.view]; 48 49 // 在播放视频之前,注册通知 50 [[NSNotificationCenter defaultCenter] addObserver:self 51 selector:@selector(videoPlayBackDidFinish:) 52 name:MPMoviePlayerPlaybackDidFinishNotification 53 object:self.videoController]; 54 55 // 播放加载到的视频 56 [self.videoController play]; 57 58 } 59 - (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker { 60 61 [picker dismissViewControllerAnimated:YES completion:NULL]; 62 63 } 64 65 #pragma mark - 通知监听的方法 66 - (void)videoPlayBackDidFinish:(NSNotification *)notification { 67 68 // 执行时候就移除通知对象 69 [[NSNotificationCenter defaultCenter]removeObserver:self name:MPMoviePlayerPlaybackDidFinishNotification object:nil]; 70 71 // Stop the video player and remove it from view 72 [self.videoController stop]; 73 [self.videoController.view removeFromSuperview]; 74 self.videoController = nil; 75 76 // Display a message 77 UIAlertView *alert = [[UIAlertView alloc] 78 initWithTitle:@"Video Playback" message:@"Just finished the video playback. The video is now removed." delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil]; 79 [alert show]; 80 81 } 82 83 @end
下面备份一下这个源码,在百度云链接: http://pan.baidu.com/s/1hsIvygW 密码: 4fpg