我正在尝试从外部光盘(“ /Seagate
”)中读取带有MediaLibrary框架的Fotos库。
无论我尝试什么,都只能从位于“图片”下的默认库中获取数据。
使用Fotos应用程序读取外部库可完美运行。 (我更改了Fotos中的路径) 在我的应用中,我尝试了几种选择:
使用选项字典连接到MediaLibrary
通过MLMediaLoadFoldersKey包括我的外部设备(请参见下面的代码)。没有成功
使用不同的标识符读取mediaGroups
。没有成功
我想知道为什么尽管我定义了默认文件夹和我的外部文件夹,但为什么我却得不到2个mediaSources
应该很好地管理从库中延迟加载数据的方面,因为我为所有步骤设置了观察者:library -> sources -> groups -> objects
要点1:
NSDictionary *options = @{
MLMediaLoadSourceTypesKey: @(MLMediaSourceTypeImage),
MLMediaLoadIncludeSourcesKey: @[MLMediaSourcePhotosIdentifier,MLMediaSourceiPhotoIdentifier],
MLMediaLoadFoldersKey:@[MLMediaLoadFoldersKey,@"//Seagate/Fotos Library"]
if ( mediaLibrary == Nil) {
MLMediaLibrary *MmediaLibrary = [[MLMediaLibrary alloc] initWithOptions:options];
mediaLibrary = MmediaLibrary;
}
[mediaLibrary addObserver:self
forKeyPath:@"mediaSources"
options:0
context:(__bridge void *)@"mediaLibraryLoaded"];
[mediaLibrary mediaSources];
要点2:
//...
else if (context == (__bridge void *)@"rootMediaGroupLoaded")
{
MLMediaGroup *sharedAlbums = [mediaSource mediaGroupForIdentifier:@"TopLevelAlbums"];
MLMediaGroup *topLevelAlbums = [mediaSource mediaGroupForIdentifier:@"Albums"];
MLMediaGroup *allFotosAlbums = [mediaSource mediaGroupForIdentifier:@"Fotos"];
MLMediaGroup *iPhotoAlbums = [mediaSource mediaGroupForIdentifier:@"iPhotos"];
NSArray *albumList = [sharedAlbums.childGroups arrayByAddingObjectsFromArray:topLevelAlbums.childGroups];
albumList = [albumList arrayByAddingObjectsFromArray:allFotosAlbums.childGroups];
albumList = [albumList arrayByAddingObjectsFromArray:iPhotoAlbums.childGroups];
//albumList = [albumList arrayByAddingObjectsFromArray:@[topLevelAlbums]];
{
[self addObserver:self
forKeyPath:@"nextAlbumIndex"
options:0
context:@"nextAlbumIndex"]; // manages the loop over all albums
#pragma mark query all photos of one Album
//
MLMediaGroup *Nalbum = [[AlbumList objectAtIndex:nextAlbumIndex] group];
[Nalbum addObserver:self
forKeyPath:@"mediaObjects"
options:0
context:@"mediaObjects"];
[Nalbum mediaObjects]; // query the list and store result in Malbum
}}
}
我希望检索外部Fotos库,但是我总是得到默认的库。 没有错误消息,可能会给我一些提示。
答案 0 :(得分:0)
在咨询Apple支持之后,有人告诉我,不支持从默认路径以外的其他路径读取Fotos库。