标签: assetslibrary

更改隐私设置时由SIGKILL杀死的应用程序

我的iOS应用程序访问用户的照片ALAssetsLibrary.当我更改应用程序的隐私设置(设置→隐私→照片)时,应用程序会被系统(SIGKILL)杀死.这是一个错误吗?

ios assetslibrary ios6

44
推荐指数
3
解决办法
1万
查看次数

使用GCDWebServer将UIImage发送到LocalwebServer

我的应用程序使用GCDWebServer我从我的iPhone相册中获取照片AssetsLibrary并将其存储在中NSDocumentDirectory.我只想访问此照片的Url以在网页中显示它们.

有我的代码:

[_webServer addHandlerForMethod:@"POST"
                              path:@"/"
                      requestClass:[GCDWebServerURLEncodedFormRequest class]
                      processBlock:^GCDWebServerResponse *(GCDWebServerRequest* request) {

                          ALAsset *asset = [self.arrayPictures objectAtIndex:0];
                          ALAssetRepresentation *rep = [asset defaultRepresentation];
                          CGImageRef iref = [rep fullResolutionImage];
                          UIImage *thumbnail = [UIImage imageWithCGImage:iref];
                          NSString* path ;
                          if (thumbnail != nil)
                          {
                              NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
                              NSString *documentsDirectory = [paths objectAtIndex:0];
                               path =  [[NSString alloc] initWithString:[documentsDirectory stringByAppendingPathComponent:@"test.png"]];
                              NSData* data = UIImagePNGRepresentation(thumbnail);
                              [data writeToFile:path atomically:YES];
                          }

                          NSURL *url = [NSURL fileURLWithPath:path];
                          NSString* html = [NSString stringWithFormat:@"<html><body><img …
Run Code Online (Sandbox Code Playgroud)

objective-c ios assetslibrary nsdocumentdirectory gcdwebserver

15
推荐指数
1
解决办法
1597
查看次数

ALAssetPropertyLocation不能在3gs iPhone上的任何iOS 4.0+上运行,但在iPhone4上运行完美

我有一个应用程序,位置服务已启用(来自设置等),我正在使用ALAssetsLibrary从我的设备中读取所有照片.

它在iPhone4 iOS 4.2.1上完美运行,但相同的代码和相同的资产在任何3gs任何iOS(从4.0到4.2.1)上都不能工作.

问题是它总是在3gs上检索无效的CLLocation.

即使在iPhone4上的相同图片(复制到两个设备上)也会返回有效的CLLocation,在3gs上它返回无效!图片图片本身在两台设备上都有效,只有CLLocation无效.我没有任何崩溃,并且代码没有进入任何无效的块,除了无效的CLLocation数据之外它都可以正常工作.

输出相同的资产相同的代码以及相同的iOS版本(4.2.1):

iPhone4:<+ 51.23816667,-0.57700000> +/- 0.00m(速度-1.00 mps /航向-1.00)@ 19/02/2011 01:59:28格林威治标准时间

3gs:<nan,nan> +/- 0.00m(速度-1.00 mps/course -1.00)@ 2011-02-19 01:20:35 +0000

(注意无效位置上的日期是当前时间)

我得到这样的CLLocation:

 CLLocation* location = [asset valueForProperty:ALAssetPropertyLocation];
 CLLocationCoordinate2D coord = [location coordinate];
 if ( !CLLocationCoordinate2DIsValid(coord) ) return;
Run Code Online (Sandbox Code Playgroud)

在我的viewcontroller DidLoad中调用的ALAssetsLibrary代码看起来像这样(完全标准):

ALAssetsLibrary* library = [[ALAssetsLibrary alloc] init];

 void (^assetEnumerator)(struct ALAsset *, NSUInteger, BOOL *) = ^(ALAsset *result, NSUInteger index, BOOL *stop) {
      if(result != NULL) 
      {
                [self myFunction:result withIndex:index];

      }
 }; …
Run Code Online (Sandbox Code Playgroud)

iphone objective-c cllocation assetslibrary

14
推荐指数
1
解决办法
1671
查看次数

报告ALAssetRepresentation元数据方法崩溃

我有一些代码来包装从枚举ALAssetLibrary中的资产中检索到的ALAsset对象.我收到用户遇到崩溃的报告,包装器对象的一部分要求它包含元数据的ALAsset.

崩溃的代码在这个包装器类中,它只是要求它的ALAsset的元数据如下:

[[myAlAsset defaultRepresentation] metadata]; 
Run Code Online (Sandbox Code Playgroud)

这是一个部分堆栈跟踪,代表我看到的崩溃:

0
CoreFoundation   CFDataGetBytePtr + 5
1
PhotoLibraryServices     __46-[PLManagedAsset adjustmentsXMPRepresentation]_block_invoke + 228
2
PhotoLibraryServices     __46-[PLManagedAsset adjustmentsXMPRepresentation]_block_invoke + 228
3
CoreData     developerSubmittedBlockToNSManagedObjectContextPerform + 88
4
CoreData     -[NSManagedObjectContext performBlockAndWait:] + 114
5
PhotoLibraryServices     -[PLManagedAsset adjustmentsXMPRepresentation] + 226
6
AssetsLibrary    __33-[ALAssetRepresentation metadata]_block_invoke + 24
7
AssetsLibrary    __53-[ALAssetRepresentationPrivate _performBlockAndWait:]_block_invoke + 68
8
CoreData     developerSubmittedBlockToNSManagedObjectContextPerform + 88
9
libdispatch.dylib    _dispatch_client_callout + 22
10
libdispatch.dylib    _dispatch_barrier_sync_f_invoke + 26
11
CoreData     -[NSManagedObjectContext performBlockAndWait:] + 106
12
AssetsLibrary    -[ALAssetsLibrary _performBlockAndWait:] + 134
13 …
Run Code Online (Sandbox Code Playgroud)

ios assetslibrary ios7

13
推荐指数
1
解决办法
571
查看次数

在iOS4.1上保存带照片的地理标记信息

我在iOS4.1上尝试将照片保存到带有地理标记信息的相机胶卷时遇到了重大问题.我正在使用以下ALAssetsLibrary API:

- (void)writeImageDataToSavedPhotosAlbum:(NSData *)imageData 
                                metadata:(NSDictionary *)metadata 
                         completionBlock:(ALAssetsLibraryWriteImageCompletionBlock)completionBlock
Run Code Online (Sandbox Code Playgroud)

我有GPS坐标,我想用照片作为输入保存.遗憾的是,没有文档或示例代码描述如何形成封装GPS坐标的元数据NSDictionary.有人可以发布已知有效的示例代码吗?

我也尝试使用iPhone Exif库来保存imageData中的地理信息而不是使用元数据,但遗憾的是iPhone Exif库崩溃了.任何帮助是极大的赞赏.

iphone cocoa-touch ios4 assetslibrary

12
推荐指数
3
解决办法
1万
查看次数

如何从iOS/iPhone中的资产库获取照片/视频源路径?

我已经遇到这个问题,因为一个多星期以来,我无法从资产库网站获取原始照片/视频路径.

我可以通过将此文件保存到我的应用程序SandBox来获取其数据,但在这里我想避免这些事情再次创建该文件的另一个副本.

我在DropBox中投资,他们直接从assets-library url上传.所以,请帮我解决这个问题.

提前致谢.

这是我的代码:

-(NSString*) videoAssetURLToTempFile:(NSString*)combineURL{
self.activityIndicator.hidden = FALSE;
NSLog(@"combineURL: %@",combineURL);
NSArray *arr = [combineURL componentsSeparatedByString:@"->"];
NSString *index = [arr objectAtIndex:0];

NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"%@",[arr objectAtIndex:1]]];

//url like: "assets-library://asset/asset.MOV?id=78988A2B-203B-41B9-8EDA-F3029303DFBF&ext=MOV"

NSString * surl = [url absoluteString];
NSString * ext = [surl substringFromIndex:[surl rangeOfString:@"ext="].location + 4];

NSTimeInterval ti = [[NSDate date]timeIntervalSinceReferenceDate];
NSString *fname = [NSString stringWithFormat: @"%f.%@",ti,ext];

NSString *stringPath = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)objectAtIndex:0]stringByAppendingPathComponent:@"SAVED_PHOTOS"];
// New Folder is your folder name
NSError *error = nil;
if (![[NSFileManager defaultManager] fileExistsAtPath:stringPath]) …
Run Code Online (Sandbox Code Playgroud)

ios assetslibrary alassetslibrary

7
推荐指数
0
解决办法
2242
查看次数

ALAssetsLibrary删除ALAssetsGroup/ALAsset

我使用IOS AssetsLibrary从我的应用程序创建了"照片专辑".

读取ALAssetsLibrary,ALAssetsGroup和ALAsset文档,我看到了"addAsset","addAssetsGroupAlbumWithName"的方法.

有没有办法删除PROGRAMMATICYY我的ALAssetsGroup和ALAsset.(属性'editable'假设为TRUE,因为我创建了这个数据).

assets assetslibrary alasset alassetslibrary ios5

6
推荐指数
4
解决办法
9305
查看次数

"超过最多5张过滤专辑试图注册.这将失败." 使用AssetsLibrary

我有时会得到"超过最多5张过滤的专辑试图注册.这将失败." 当我在ALAssetsGroup上调用setAssetsFilter时.

谁知道为什么?我见过类似的问题,但都与UIImagePickerController有关.

这里的代码:

ALAssetsLibrary *lib = [[ALAssetsLibrary alloc] init];

    [lib enumerateGroupsWithTypes:ALAssetsGroupSavedPhotos usingBlock:^(ALAssetsGroup *group, BOOL *stop) {

        [group setAssetsFilter:[ALAssetsFilter allPhotos]];
        [group enumerateAssetsWithOptions:NSEnumerationReverse usingBlock:^(ALAsset *result, NSUInteger index, BOOL *stop) {....}];
Run Code Online (Sandbox Code Playgroud)

ios assetslibrary alassetslibrary

6
推荐指数
1
解决办法
1512
查看次数

如何从资产库中播放视频文件

如何从资产库中播放视频文件?我有像文件的URL

"assets-library://asset/asset.MOV?id=1000000023&ext=MOV"
Run Code Online (Sandbox Code Playgroud)

但是我无法使用以下代码在媒体播放器中播放此文件:

NSString *urlAddress = @"assets-library://asset/asset.mov?id=1000000023&ext=mov"; 
NSURL *theURL = [NSURL URLWithString:urlAddress]; 
MPMoviePlayerController *mp = [[MPMoviePlayerController alloc] initWithContentURL:theURL];
Run Code Online (Sandbox Code Playgroud)

iphone media-player ipad ios4 assetslibrary

5
推荐指数
1
解决办法
4752
查看次数

ios 6.0.1 ALAssetsLibraryChangedNotification,试图了解发送的内容

我一直在使用iOS 6.x中的ALAssetsLibraryChangedNotification(目前特别是6.0.1),我得到的结果与我期望在我的userinfo中收到的内容相反,基于我从文档中理解的内容.

这是我的事件注册代码:

  [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(assetsLibraryDidChange:) name:ALAssetsLibraryChangedNotification object:_library];
Run Code Online (Sandbox Code Playgroud)

测试,我进入我的照片库,删除一些项目,添加一些项目.

这是我的经纪人.

    - (void)assetsLibraryDidChange:(NSNotification *)note
{
  NSDictionary* info = [note userInfo];
  NSLog(@"assetsLibraryDidChange calling syncPhotoInfoFromAssets, userInfo %@", info);
  //   If the user information dictionary is nil, reload all assets and asset groups.
  if(note.userInfo==nil) {
    [self syncPhotoInfoFromAssets];
    return;
  }

  //   If the user information dictionary an empty dictionary, there is no need to reload assets and asset groups.
  if(note.userInfo.count == 0) {
    return;
  }

 // If the user information dictionary is not empty, …
Run Code Online (Sandbox Code Playgroud)

objective-c nsnotificationcenter assetslibrary alassetslibrary

5
推荐指数
1
解决办法
5728
查看次数