gpt4 book ai didi

ios - 如何在 iOS8 中获取 Mp3 文件的艺术作品

转载 作者:行者123 更新时间:2023-11-29 01:31:47 26 4
gpt4 key购买 nike

如何从 MP3 文件中获取专辑封面或插图。我的 mp3 文件保存在 NSDocument 目录中。我的代码是:

NSURL *fileURL=[[NSURL alloc]initFileURLWithPath:[NSHomeDirectory() stringByAppendingPathComponent:[NSString stringWithFormat:@"Documents/%@.mp3",[listOfSong objectAtIndex:currentIndex]]]];
AVAsset *asset = [AVURLAsset URLAssetWithURL:fileURL options:nil];
if (asset != nil) {
NSArray *keys = [NSArray arrayWithObjects:@"commonMetadata", nil];
[asset loadValuesAsynchronouslyForKeys:keys completionHandler:^{
NSArray *artworks = [AVMetadataItem metadataItemsFromArray:asset.commonMetadata
withKey:AVMetadataCommonKeyArtwork
keySpace:AVMetadataKeySpaceCommon];
UIImage *albumArtWork;

for (AVMetadataItem *item in artworks) {
if ([item.keySpace isEqualToString:AVMetadataKeySpaceID3]) {

// *** WE TEST THE IOS VERSION HERE ***

if (TARGET_OS_IPHONE && NSFoundationVersionNumber > NSFoundationVersionNumber_iOS_7_1) {
NSData *newImage = [item.value copyWithZone:nil];
albumArtWork = [UIImage imageWithData:newImage];
}
else {
NSDictionary *dict = [item.value copyWithZone:nil];
if ([dict objectForKey:@"data"]) {
albumArtWork = [UIImage imageWithData:[dict objectForKey:@"data"]];
}
}
}
else if ([item.keySpace isEqualToString:AVMetadataKeySpaceiTunes]) {
// This doesn't appear to get called for images set (ironically) in iTunes
albumArtWork = [UIImage imageWithData:[item.value copyWithZone:nil]];
}
}

if (albumArtWork != nil) {
dispatch_sync(dispatch_get_main_queue(), ^{
imageView.image = albumArtWork;
[artworkImages addObject:albumArtWork];
});
}

}];
}

但是在上面的代码中,artworks 数组总是返回空的。为什么?解决方案是什么?

最佳答案

希望这会有所帮助。这段代码适用于 ios 9 和 xcode 7。

而不是使用这行代码。

albumArtWork = [UIImage imageWithData:[item.value copyWithZone:nil]];

尝试这个,因为元数据格式已经改变。

albumArtWork=[UIImage imageWithData:[item dataValue]]; 

关于ios - 如何在 iOS8 中获取 Mp3 文件的艺术作品,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33374862/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com