0
我正在開發一個名爲safekeep的應用程序。我必須通過轉換爲數據使用coredata導入視頻。如何使用coredata導入視頻?
if ([[info objectForKey:UIImagePickerControllerMediaType] isEqualToString:@"public.movie"])
{
NSURL *videoURL = [info objectForKey:UIImagePickerControllerMediaURL];
NSLog(@"Q: video path: %@",[videoURL description]);
self.videoData=[NSData dataWithContentsOfURL:videoURL];
if(self.videoData)
{
NSLog(@"data is present");
NSManagedObjectContext *context = [appDelegate managedObjectContext];
NSManagedObject *imagetblObj= [NSEntityDescription insertNewObjectForEntityForName:@"VideoData" inManagedObjectContext:context];
[imagetblObj setValue:self.videoData forKey:@"videodata"];
[imagetblObj setValue:str forKey:@"date"];
NSError *err;
if (![context save:&err])
{
NSLog(@"Couldn't save history item into coredata");
}
NSLog(@"data saved");
[self videodatafromdb];
}
}
-(void)videodatafromdb
{
NSManagedObjectContext *context = [(AppDelegate *)[[UIApplication sharedApplication] delegate] managedObjectContext];
NSFetchRequest *request = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"VideoData" inManagedObjectContext:context];
[request setEntity:entity];
NSError *error;
NSArray *recordsData=[context executeFetchRequest:request error:&error];
self.videoarray=[[recordsData reverseObjectEnumerator]allObjects];
NSLog(@"Array count is %d",[self.videoarray count]);
if ([self.videoarray count]>0)
{
[self createScrollViewvideo];
}
}
-(void)createScrollViewvideo
{
NSLog(@"in create scrollviewvideo");
//add views to scrolview
int x=5;
int y=17;
for(int i=0;i<[videoarray count];i++)
{
UIImage *imag=[[UIImage alloc] init];
UIView *videoview=[[UIView alloc] initWithFrame:CGRectMake(x, y, 100, 100)];
videoview.tag=i;
UIButton *userButton=[[UIButton alloc]initWithFrame:CGRectMake(1, 1, 100,100)];
[userButton addTarget:self action:@selector(userVideoClicked:) forControlEvents:UIControlEventTouchUpInside];
userButton.tag=i;
imag=[UIImage imageWithData:videoData];
[userButton setBackgroundImage:imag forState:UIControlStateNormal];
[videoview addSubview:userButton];
[self.scrollview addSubview:videoview];
[userButton release];
[videoview release];
x+=104;
if ((i+1)%3==0)
{
y+=110;
x=5;
}
}
NSLog(@"10000in create scrollview");
if (y+110>self.scrollview.frame.size.height)
{
self.scrollview.contentSize=CGSizeMake(320, y+110);
}
else
{
self.scrollview.contentSize=CGSizeMake(320, self.scrollview.frame.size.height+60);
}
}
}
- (IBAction爲)userVideoClicked:(ID)發送方 { 的NSLog(@ 「視頻點擊」);
UIButton *button=(UIButton*)sender;
VideoData *videoobj=(VideoData *)[self.videoarray objectAtIndex:[button tag]];
NSLog(@"video data is %@",videoobj);
VidoesVIewController *videoviewcontroller=[[VidoesVIewController alloc] initWithNibName:@"VidoesVIewController" bundle:nil];
videoviewcontroller.videodata=[videoobj valueForKey:@"videodata"];
[self.navigationController pushViewController:videoviewcontroller animated:YES];
[videoviewcontroller release];
}
的影片不是sroll view.But顯示當點擊視頻文件時,它導航。當圖像設置爲按鈕時,圖像顯示在視圖中。提前感謝。
我看不到您將影片播放器視圖或縮略圖添加到'videoview'。 –
爲什麼你使用coredata來存儲電影?您可以將它存儲在文檔文件夾等中,並將其放入coredata url中。 – NeverBe
我正在存儲這個電影文件夾,但得到這部電影使用coredata – fathik