Как сохранить видео, снятое с камеры, в базу данных SQLite на iPhone? - PullRequest
1 голос
/ 03 июня 2011

У меня есть приложение, в котором есть кнопка с именем video. Когда пользователь нажимает кнопку, открывается новый вид, который состоит из 4 других кнопок, а именно: взять видео и просмотреть видео.

Когда он нажимает на кнопку «Снять видео», открывается камера, которая позволяет ему снимать видео, и видео вставляется в вид. Это все было сделано, но есть проблема, когда пользователь снял видео, и видео вставляется в представление. В представлении есть кнопка с именем add, которая позволяет вставить видео в базу данных SQLite.

У меня проблема с привязкой видео и вставкой захваченного видео в базу данных SQLite.

Ответы [ 2 ]

1 голос
/ 03 июня 2011

Я не уверен, почему вы хотите сохранить двоичные данные, содержащие захваченные видео, в базу данных. В наилучшей практике БД это не очень хорошая идея. Я бы посоветовал сохранить ваши видео в директорию домашней папки и назвать их как нечто, что вы можете связать с базой данных.

Например, пользователь записал новое видео, в базе данных вы сделали новую запись, и вы получили сгенерированный идентификатор, скажем, ID 10, поэтому вы должны сохранить видео в домашнем каталоге, например, 10.mp4

Следовательно, вы можете позже восстановить свое видео на основе того же значения идентификатора.

:)

0 голосов
/ 03 июня 2011

Попытка вставить предложение Роберто в код:

1) генерирует уникальный идентификатор (генерируется меткой времени / hash / CFUUIDCreate ...).

CFStringRef uStr =  CFUUIDCreateString(kCFAllocatorDefault,CFUUIDCreate(kCFAllocatorDefault));  
NSString *uniqueId = [[NSString alloc] initWithString:uStr];  

2) сохранить файл с этим уникальным именем. Теперь сохраните uniqueId в БД SQLite.

NSString *docsDir = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];  
NSString *filePath = [docsDir sstringByAppendingPathComponent:uniqueId];  
NSFileManager *fManager = [NSFileManager defaultManager];   
if (![fManager fileExistsAtPath:fileDirPath])   
{   
    // save the file   
}

3) Чтобы получить видео из uniqueId, попробуйте создать путь к файлу из него как

NSString *docsDir = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSString *filePath = [docsDir sstringByAppendingPathComponent:uniqueId];
NSFileManager *fManager = [NSFileManager defaultManager];  
if ([fManager fileExistsAtPath:fileDirPath])   
{   
    // access the file   
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...