亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

187實現錄制視頻功能

2019-11-14 18:49:11
字體:
來源:轉載
供稿:網友

PS:對于 Video 選項,會調用攝像頭和麥克風,需要真機才能測試。

 

UIImagePickerControllerQualityType(視頻質量類型枚舉):

經過真機測試,錄制30秒的視頻,清晰度和大小由高到低為:

UIImagePickerControllerQualityTypeIFrame1280x720 -- 135.6 MB

UIImagePickerControllerQualityTypeIFrame960x540 -- 100.1 MB

UIImagePickerControllerQualityTypeHigh -- 61.8 MB

UIImagePickerControllerQualityType640x480 -- 12.7 MB(清晰度和大小來說,更推薦這個)

UIImagePickerControllerQualityTypeMedium -- 2.8 MB(默認值)

UIImagePickerControllerQualityTypeLow -- 721.4 KB(無法直視的模糊?。?/p>

 

PCH File 的作用:

PCH File 在 Xcode 6中默認不會添加,這里如果我們工程文件多處地方需要調用到框架頭文件時,我們可以考慮通過自行添加一個 PCH File,然后在 Build Settings 中的 PRefix Header 項設置引用此文件;這樣我們就不需要在需要調用它的地方通過 import 來導入框架頭文件了。

PS:Prefix Header 項設置引用此文件如果不直接用「FirstBook187/PrefixHeader.pch」的話,也可以用「$(SRCROOT)/$(PROJECT_NAME)/PrefixHeader.pch」,在這里:

$(SRCROOT) 表示工程的相對路徑:/Users/Kenmu/Documents/iOSDevelopment/FirstBook187

$(PROJECT_NAME)表示工程名稱:FirstBook187

實際上「$(SRCROOT)/$(PROJECT_NAME)/PrefixHeader.pch」就被自動識別為:「/Users/Kenmu/Documents/iOSDevelopment/FirstBook187/FirstBook187/PrefixHeader.pch」了

 

關鍵操作:

 

 

 

效果如下:

ViewController.h

1 #import <UIKit/UIKit.h>2 3 @interface ViewController : UIViewController <UIActionSheetDelegate, UIImagePickerControllerDelegate, UINavigationControllerDelegate>4 5 @end

ViewController.m

  1 #import "ViewController.h"  2 #import "sys/utsname.h"  3   4 @interface ViewController ()  5 - (void)layoutUI;  6 - (void)showActionSheet:(UIBarButtonItem *)sender;  7 - (void)video:(NSString *)videoPath didFinishSavingWithError:(NSError *)error contextInfo:(void *)contextInfo;  8 @end  9  10 @implementation ViewController 11  12 - (void)viewDidLoad { 13     [super viewDidLoad]; 14      15     [self layoutUI]; 16 } 17  18 - (void)didReceiveMemoryWarning { 19     [super didReceiveMemoryWarning]; 20     // Dispose of any resources that can be recreated. 21 } 22  23 - (void)viewWillAppear:(BOOL)animated { 24     [super viewWillAppear:animated]; 25     [self.navigationController setNavigationBarHidden:NO animated:animated]; 26     [self.navigationController setToolbarHidden:NO animated:animated]; 27 } 28  29 - (void)layoutUI { 30     self.navigationItem.title = @"實現錄制視頻功能"; 31     self.view.backgroundColor = [UIColor whiteColor]; 32     UIBarButtonItem *barBtnVideo = [[UIBarButtonItem alloc] 33                                           initWithBarButtonSystemItem:UIBarButtonSystemItemCamera 34                                           target:self 35                                           action:@selector(showActionSheet:)]; 36     self.toolbarItems = @[barBtnVideo]; 37 } 38  39 - (void)showActionSheet:(UIBarButtonItem *)sender { 40     UIActionSheet *actionSheet = [[UIActionSheet alloc] initWithTitle:@"錄制視頻" 41                                                              delegate:self 42                                                     cancelButtonTitle:@"取消" 43                                                destructiveButtonTitle:nil 44                                                     otherButtonTitles:@"PhotoLibrary", @"Video", nil]; 45     [actionSheet showFromToolbar:self.navigationController.toolbar]; 46 } 47  48 - (void)video:(NSString *)videoPath didFinishSavingWithError:(NSError *)error contextInfo:(void *)contextInfo { 49     if (error) { 50         NSLog(@"%@", [error localizedDescription]); 51     } 52 } 53  54 #pragma mark - UIActionSheetDelegate 55 - (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex { 56     if (buttonIndex != actionSheet.cancelButtonIndex) { 57         UIImagePickerControllerSourceType sourceType = buttonIndex; 58         if ([UIImagePickerController isSourceTypeAvailable:sourceType]) { 59             UIImagePickerController *imagePickerController = [[UIImagePickerController alloc] init]; 60             imagePickerController.delegate = self; 61             imagePickerController.sourceType = sourceType; 62             imagePickerController.videoQuality = UIImagePickerControllerQualityType640x480; //設置視頻質量;默認值為UIImagePickerControllerQualityTypeMedium 63             imagePickerController.videoMaximumDuration = 30; //錄制視頻的時間,單位為秒;默認值為10分鐘=600秒,這里設置為30秒 64              65             NSArray *arrMediaType = [UIImagePickerController availableMediaTypesForSourceType:sourceType]; 66             if ([arrMediaType containsObject:(NSString *)kUTTypeMovie]) { //為了使用kUTTypeMovie,這里需要導入<MobileCoreServices/MobileCoreServices.h> 67                 imagePickerController.mediaTypes = @[(NSString *)kUTTypeMovie]; 68             } else { 69                 NSLog(@"%@ is not available.", kUTTypeMovie); 70             } 71              72             [self presentViewController:imagePickerController 73                                animated:YES 74                              completion:nil]; 75         } 76     } 77      78     /* 79      UIImagePickerControllerQualityType(視頻質量類型枚舉):經過真機測試,錄制30秒的視頻,清晰度和大小由高到低為: 80      UIImagePickerControllerQualityTypeIFrame1280x720 -- 135.6 MB 81      UIImagePickerControllerQualityTypeIFrame960x540 -- 100.1 MB 82      UIImagePickerControllerQualityTypeHigh -- 61.8 MB 83      UIImagePickerControllerQualityType640x480 -- 12.7 MB(清晰度和大小來說,更推薦這個) 84      UIImagePickerControllerQualityTypeMedium -- 2.8 MB(默認值) 85      UIImagePickerControllerQualityTypeLow -- 721.4 KB(無法直視的模糊?。?/span> 86       87       88      typedef NS_ENUM(NSInteger, UIImagePickerControllerQualityType) { 89      UIImagePickerControllerQualityTypeHigh = 0,       // highest quality 90      UIImagePickerControllerQualityTypeMedium = 1,     // medium quality, suitable for transmission via Wi-Fi 91      UIImagePickerControllerQualityTypeLow = 2,         // lowest quality, suitable for tranmission via cellular network 92      #if __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_4_0 93      UIImagePickerControllerQualityType640x480 = 3,    // VGA quality 94      #endif 95      #if __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_5_0 96      UIImagePickerControllerQualityTypeIFrame1280x720 = 4, 97      UIImagePickerControllerQualityTypeIFrame960x540 = 5 98      #endif 99      };100      */101 }102 103 #pragma mark - UIImagePickerControllerDelegate104 - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {105     //判斷是否是視頻106     NSString *mediaType = [info objectForKey:UIImagePickerControllerMediaType];107     if ([mediaType isEqualToString:(NSString *)kUTTypeMovie]) {108         NSURL *mediaURL = [info objectForKey:UIImagePickerControllerMediaURL];109         NSString *mediaPath = [mediaURL path];110         //判斷視頻路徑是否支持被保存到圖片庫中111         if (UIVideoAtPathIsCompatibleWithSavedPhotosAlbum(mediaPath)) {112             //將視頻保存到相冊113             UISaveVideoAtPathToSavedPhotosAlbum(mediaPath,114                                                 self,115                                                 @selector(video:didFinishSavingWithError:contextInfo:),116                                                 NULL);117         } else {118             NSLog(@"視頻路徑不支持被保存到圖片庫中");119         }120     }121     122     123     //把圖片保存到相冊124     //    UIImageWriteToSavedPhotosAlbum(imgChoice,125     //                                   self,126     //                                   @selector(image:didFinishSavingWithError:contextInfo:),127     //                                   NULL);128     129     [self imagePickerControllerDidCancel:picker];130 }131 132 - (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker {133     [self dismissViewControllerAnimated:YES completion:nil];134 }135 136 @end

AppDelegate.h

1 #import <UIKit/UIKit.h>2 3 @interface AppDelegate : UIResponder <UIapplicationDelegate>4 @property (strong, nonatomic) UIWindow *window;5 @property (strong, nonatomic) UINavigationController *navigationController;6 7 @end

AppDelegate.m

 1 #import "AppDelegate.h" 2 #import "ViewController.h" 3  4 @interface AppDelegate () 5 @end 6  7 @implementation AppDelegate 8  9 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {10     _window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];11     ViewController *viewController = [[ViewController alloc] init];12     _navigationController = [[UINavigationController alloc] initWithRootViewController:viewController];13     _window.rootViewController = _navigationController;14     //[_window addSubview:_navigationController.view]; //當_window.rootViewController關聯時,這一句可有可無15     [_window makeKeyAndVisible];16     return YES;17 }18 19 - (void)applicationWillResignActive:(UIApplication *)application {20 }21 22 - (void)applicationDidEnterBackground:(UIApplication *)application {23 }24 25 - (void)applicationWillEnterForeground:(UIApplication *)application {26 }27 28 - (void)applicationDidBecomeActive:(UIApplication *)application {29 }30 31 - (void)applicationWillTerminate:(UIApplication *)application {32 }33 34 @end

PrefixHeader.pch

1 #ifndef FirstBook187_PrefixHeader_pch2 #define FirstBook187_PrefixHeader_pch3 4 // Include any system framework and library headers here that should be included in all compilation units.5 // You will also need to set the Prefix Header build setting of one or more of your targets to reference this file.6 #import <MobileCoreServices/MobileCoreServices.h>7 8 #endif

 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲欧美中文日韩v在线观看| 国产亚洲欧美一区| 欧美理论电影在线观看| 91大神在线播放精品| 91欧美视频网站| 欧美精品性视频| 亚洲国产成人久久综合一区| 91精品免费久久久久久久久| 国产精品日韩欧美大师| 亚洲大胆美女视频| 精品香蕉一区二区三区| 久久99精品久久久久久琪琪| 国语自产精品视频在线看一大j8| 日本道色综合久久影院| 国产精品偷伦一区二区| 国产精品旅馆在线| 国产精品吴梦梦| 中文字幕欧美日韩va免费视频| 亚洲国产精品一区二区久| 日韩在线观看免费| 日韩成人免费视频| 亚洲国产成人久久综合| 国产日韩在线看片| 2019中文字幕在线免费观看| 亚洲成人黄色网| www.亚洲天堂| 国产女精品视频网站免费| 久久久久免费精品国产| 亚洲成人精品视频在线观看| 亚洲第一av网站| 欧美亚洲成人xxx| 在线播放国产精品| 欧美激情视频一区| 久久精品久久精品亚洲人| 欧美日韩国产中字| 欧美综合第一页| 亚洲第一精品夜夜躁人人躁| 日韩电影中文字幕一区| 亚洲最新视频在线| 在线观看免费高清视频97| 日韩中文字幕在线精品| 色视频www在线播放国产成人| 国产精品毛片a∨一区二区三区|国| 欧美成人午夜激情在线| 黑人极品videos精品欧美裸| 成人国产精品一区二区| 国产精品美腿一区在线看| 亚洲天堂视频在线观看| 成人免费福利视频| 美日韩精品免费视频| 日本亚洲欧洲色| 一区二区三区高清国产| 亚洲精品资源在线| 这里只有精品在线播放| 欧美富婆性猛交| 国产精品视频午夜| 精品久久香蕉国产线看观看gif| 色综合久久中文字幕综合网小说| 国产精品一久久香蕉国产线看观看| 欧美黄色免费网站| 91亚洲精品一区| 欧美日韩国产精品一区二区三区四区| 欧美成人三级视频网站| 国产精品视频一区国模私拍| 欧美在线一区二区视频| 国产精品一区专区欧美日韩| 国产99视频在线观看| 91亚洲精品一区| 欧美国产高跟鞋裸体秀xxxhd| 92看片淫黄大片欧美看国产片| 国产精品美女免费视频| 国产久一一精品| 日本精品视频在线| 欧美在线播放视频| 一本色道久久88综合亚洲精品ⅰ| 欧美成人激情视频免费观看| 欧美乱大交做爰xxxⅹ性3| 午夜精品福利在线观看| 亚洲欧美另类在线观看| 在线播放日韩专区| 国产成人一区二区三区| 国产精品视频99| 日韩激情视频在线播放| 国产精品久久久久久久久久99| 精品久久久视频| 国产精品免费一区二区三区都可以| 国产网站欧美日韩免费精品在线观看| 91视频免费网站| 欧美激情国产精品| 永久免费看mv网站入口亚洲| 亚洲va久久久噜噜噜| 高清视频欧美一级| 亚洲欧美日韩在线一区| 一区二区三区四区精品| 午夜精品一区二区三区在线| 亚洲第一区中文字幕| 亚洲欧美国产视频| 国产福利精品在线| 久久精品国产亚洲精品2020| xxx欧美精品| 在线成人免费网站| 欧美放荡办公室videos4k| 欧美在线观看网址综合| 福利一区视频在线观看| 欧美国产亚洲视频| 亚洲精品456在线播放狼人| 国产精品com| 亚洲高清福利视频| 国产在线观看精品一区二区三区| 精品国产欧美一区二区三区成人| 欧美精品电影免费在线观看| 亚洲精品suv精品一区二区| 亚洲自拍另类欧美丝袜| 国产精品一区二区av影院萌芽| 亚洲一区二区三区777| 亚洲男人第一av网站| 91精品国产91久久久久| …久久精品99久久香蕉国产| 欧美国产日韩中文字幕在线| xxx一区二区| 欧美—级a级欧美特级ar全黄| 久久久久久久久久久久av| 亚洲自拍小视频免费观看| 97色在线视频| 91精品国产色综合| 在线亚洲国产精品网| 日韩精品免费在线视频| 91免费看视频.| 亚洲欧美日韩精品久久| 亚洲区bt下载| 日韩中文字幕在线视频播放| 亚洲热线99精品视频| 91免费电影网站| 成人亚洲综合色就1024| 热久久99这里有精品| 91在线视频一区| 狠狠久久五月精品中文字幕| 91国自产精品中文字幕亚洲| 国产999在线观看| 欧美一级片免费在线| 久久久久久久久国产| 欧美亚洲视频一区二区| 亚洲精品videossex少妇| 91精品国产777在线观看| 91久久国产综合久久91精品网站| 国产成人精品999| 久久精品国产69国产精品亚洲| 欧美精品18videosex性欧美| 97在线观看视频国产| 欧美电影免费观看网站| 国产精品成人av性教育| 亚洲欧美资源在线| 琪琪亚洲精品午夜在线| 国产精品视频播放| 欧美理论在线观看| 亚洲视频在线观看网站| 国产99久久精品一区二区| 日韩亚洲综合在线| 国产午夜精品麻豆| 8x拔播拔播x8国产精品| 中文字幕日韩欧美| 久久亚洲精品国产亚洲老地址| 欧美成人精品在线视频| 亚洲免费一级电影|