- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在尝试播放存储在核心数据中的视频。提取后显示,有一个对象和 objects.video 返回一个值,但 dataString 打印为空。我不确定我可能做错了什么。这是播放视频的正确方式还是我可以做得更好?
我在 Core Data 中只有一个对象。
我在核心数据中将视频存储为 NSData。我想获取存储的视频并播放。还有其他方法吗?
_context = [(AppDelegate *)[[UIApplication sharedApplication] delegate] managedObjectContext];
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Activity" inManagedObjectContext:_context];
[fetchRequest setEntity:entity];
// Specify how the fetched objects should be sorted
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"level"
ascending:YES];
[fetchRequest setSortDescriptors:[NSArray arrayWithObjects:sortDescriptor, nil]];
NSError *error = nil;
NSArray *fetchResults = [_context executeFetchRequest : fetchRequest error : &error];
if(fetchRequest == nil){
NSLog(@"Nothing fetched");
}
for (Activity *objects in fetchResults){
NSLog(@"%@",objects.video);
prints-> External Data Reference: <self = 0x7bf48750 ; path = FF54B18E-10B3-4B04-81D4-55AC5E2141B9 ; length = 504426>
NSString *dataString = [[NSString alloc] initWithData:objects.video encoding:NSUTF8StringEncoding];
NSLog(@"%@",dataString);
NSURL *movieURL = [NSURL URLWithString:dataString];
NSLog(@"%@",movieURL);
_moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:movieURL];
[_moviePlayer.view setFrame:CGRectMake (20, 20, 200 , self.view.bounds.size.height/2)];
[self.view addSubview:_moviePlayer.view];
[_moviePlayer play];
}
NSLog(@"%i",fetchResults.count);
最佳答案
它只是托管对象的二进制属性。您调用该属性,它返回 NSData
。从那里你可以在内存中使用 NSData
做任何你想做的事情。您的问题是您无法将 NSData
转换为 NSURL
。 NSURL
是对数据的引用,其中 NSData
是实际数据。
您需要做的是将视频文件存储在 SQLite 文件之外的磁盘上。然后在 Core Data 中存储对它的引用(又名 url)。这将允许您将视频文件与电影播放器一起使用。
正如其他人所说,将视频存储在 SQLite 文件中是一个坏主意。它会破坏 Core Data 的性能。
Thanks. I have not saved the video directly to core data instead just copied the video url and saved it as string in core data. Should I create a different folder for the app to store the videos whenever I create a copy of the videos the users use so even if they delete the original video that was uploaded to core data, the copy remains intact and thus maintaining integrity of the Objects in Core Data.
您的评论不清楚。根据您的问题,您正在将实际视频存储在核心数据中。根据您显示的输出,您将文件存储在核心数据中。你改变了吗?如果是这样,您应该将视频文件存储在已知位置,并将该位置的相对 URL 作为字符串存储在核心数据中。然后,当您准备好使用它时,您可以从中构建完整的 URL。由于沙盒可以更改,因此您无法存储整个 URL,因为它会过时。
关于ios - 从存储在 Core Data 中的 NSData 播放视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32976541/
我有一个相当大的 NSData (或 NSMutableData 如果需要)对象,我想从中取出一小块并保留其余部分。由于我正在处理大量 NSData 字节,因此我不想制作大副本,而只是截断现有字节。基
我有一个 NSMutableData 保存随机 ASCII 字节。 我想将这些字节的值移动一个值(X)。 所以让我们说我有这样的事情: 02 00 02 4e 00 我现在想将每个字节增加 0x01
我有一个NSData对象,其中包含图像的 RGB 值。我想把它变成 UIImage (给定宽度和高度)。然后我想转换 UIImage回到NSData对象与我开始时的对象相同。 请帮助我,我已经尝试了几
在做了类似的事情之后 NSData *originalImageData = [NSData dataWithContentsOfFile:@"somefolder\somepicture.jpg"]
我有两个 NSData 对象 NSData *toScan = /* initialized somehow with "Hello, this world." */; NSData *toMatch
我有一个 NSData 对象,其中包含我需要的一些数据。我想做的是找出数据“FF D8”的位置(JPEG数据的开始) 我怎样才能完成这样的工作? 最佳答案 先获取范围,然后获取数据: // The m
在基础框架中对内置的 NSData 类调用散列时——使用什么实现来返回散列值? (CRC32,还有什么?) 最佳答案 别的。其实就是一个实现细节,不需要在不同的版本中使用固定的算法。 你可以在Core
在基础框架中对内置的 NSData 类调用散列时——使用什么实现来返回散列值? (CRC32,还有什么?) 最佳答案 别的。其实就是一个实现细节,不需要在不同的版本中使用固定的算法。 你可以在Core
我收到错误: NSData 不是我下面代码中 NSData 的子类型,我做错了什么? let urlPath = "myurl" var url = NSURL(string: urlPath) le
我有一个大小约为 1000kB 的 NSData 对象。现在我想通过蓝牙传输这个。如果我有 10 个 100kB 的对象,那就更好了。我想到我应该使用 NSData 的 -subdataWithRan
我的 NSData 格式为“Hello$World$Image”($ 用作分隔符来区分不同的部分数据)我使用以下代码制作的 NSData *data=[@"$" dataUsingEncoding:N
我有两个 NSData 对象,我想将它们存储在第三个 NSData 对象中。我的想法是,当我稍后解码较大的对象时,我希望能够轻松地获得彼此独立的两个较小的对象,而不用担心它们的相对大小或数据类型。 看
我想将图像添加到字节数组。下面的代码给我一个错误。我想我没有做对。 错误 Field has incomplete type 'NSData *__strong[]' 在.m文件中 @interfac
我遇到了问题,你能帮帮我吗?太感谢了!NSString *我的字符串;UIImage *图像;NSData *data = ... 包括字符串和图像的数据,可以像以前一样反编译它们 最佳答案 您可以按
我觉得上面的错误一定是 Swift 的一个错误,否则 1 != 1 是一个正确的陈述... 我正在尝试创建一个 JSONObject,我可以将其包含在 HTTP Post 请求的正文中,以便使用 Co
我正在尝试将两个 NSData 对象连接成一个 NSMutableData,然后将它们取回。现在我正在尝试以这种方式进行: 获取第一个对象的长度。 按以下顺序写入 NSMutableData:第一个对
我想将 [String] 转换为 NSData 以进行 BLE 连接。 我知道如何将 String 转换为 NSData/NSData 为 String。 // String -> NSData va
这是我正在尝试的代码 NSData *imageData = [[NSData alloc]initWithData:UIImagePNGRepresentation(myImage.image)];
例如: NSData *data = [NSData dataWithContentsOfFile:filePath]; int len = [data length]; 如果 len = 10000
NSData 和 NSMutableData 有什么区别? 最佳答案 来自 Stack Overflow 标签维基: nsdata The NSData class is an apple class
我是一名优秀的程序员,十分优秀!