簡體   English   中英

如何在 iPhone 中捕捉視頻

[英]how to capture video in iPhone

我正在為 iPhone 中的視頻應用程序創建應用程序,但我不知道如何在 iPhone 中捕獲視頻; 我想將它們存儲在 SQLite 數據庫中,但我有一個問題:我可以將直接視頻保存在 SQLite 數據庫中嗎? 是可能的,還是我必須存儲視頻路徑? 如果我必須在 SQLite 數據庫中保存路徑,那么我該怎么做? 請幫助解決這個問題。

只有 iPhone 3GS 及更高版本支持視頻錄制。所以您應該首先檢查是否支持錄制,然后使用以下代碼為屬性設置所需的值啟動相機。
您將擁有“MobileCoreServices/MobileCoreServices.h”來運行此代碼。

            if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) {              
                UIImagePickerController *videoRecorder = [[UIImagePickerController alloc]init];         
                NSArray *sourceTypes = [UIImagePickerController availableMediaTypesForSourceType:videoRecorder.sourceType];
                NSLog(@"Available types for source as camera = %@", sourceTypes);
                if (![sourceTypes containsObject:(NSString*)kUTTypeMovie] ) {
                    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:nil 
                                                                    message:@"Device Not Supported for video Recording."                                                                       delegate:self 
                                                          cancelButtonTitle:@"Yes" 
                                                          otherButtonTitles:@"No",nil];
                    [alert show];
                    [alert release];
                    return;
                }
                videoRecorder.sourceType = UIImagePickerControllerSourceTypeCamera;
                videoRecorder.mediaTypes = [NSArray arrayWithObject:(NSString*)kUTTypeMovie];           
                videoRecorder.videoQuality = UIImagePickerControllerQualityTypeLow;
                videoRecorder.videoMaximumDuration = 120;
                videoRecorder.delegate = self;
                self.recorder_ = videoRecorder;                 
                [videoRecorder release];
                [self presentModalViewController:self.recorder_ animated:YES];                  
            }

然后您應該實現以下委托方法來保存捕獲的視頻。將視頻路徑存儲在 SQL/coredata 中是理想的,而不是將整個視頻文件存儲在其中。

-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
NSString *type = [info objectForKey:UIImagePickerControllerMediaType];
 if ([type isEqualToString:(NSString *)kUTTypeVideo] || 
    [type isEqualToString:(NSString *)kUTTypeMovie]) { // movie != video
    NSURL *videoURL = [info objectForKey:UIImagePickerControllerMediaURL];
    NSData *videoData = [NSData dataWithContentsOfURL:videoUrl];
    NSString *videoStoragePath;//Set your video storage path to this variable
    [videoData writeToFile:videoStoragePath atomically:YES];
    //You can store the path of the saved video file in sqlite/coredata here.
}
}

希望這可以幫助。

您可以將 sqlite 中的視頻數據作為原始數據存儲,但我強烈建議您不要這樣做。 表現會很糟糕。 最好將視頻保存到文檔目錄,然后保存到數據庫中的路徑。

如果您正在使用 sqlite,那么您應該查看 CoreData,它使管理持久性變得更加容易......下載我的核心數據教程的源代碼,因為它包含一個很好的存儲服務包裝器...... 教程在這里

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM