MPMediaItemArtwork 返回错误尺寸的图稿

2024-01-03

我发现 MPMediaItemArtwork 存在一个一致的问题,即它返回的图稿尺寸与我请求的尺寸不同。

我正在使用的代码如下

MPMediaItem *representativeItem = [self.representativeItems objectAtIndex:index];
MPMediaItemArtwork *artwork = [representativeItem valueForProperty:MPMediaItemPropertyArtwork];
UIImage *albumCover = [artwork imageWithSize:CGSizeMake(128.0f, 128.0f)];

这按预期工作,只是返回图像的大小始终是{320.0f, 320.0f}尽管我特意要求{128.0f, 128.0f}由于图像大小是预期大小的两倍以上,因此会导致一些内存问题。

还有其他人目睹过这个特定问题吗?你是怎么解决的?

苹果文档表明这应该按照我的预期工作,而不是实际情况


我下载了AddMusic 示例源 http://developer.apple.com/library/ios/#samplecode/AddMusic/Introduction/Intro.htmlApple 也使用 MPMediaItemArtwork 只是为了看看他们如何处理事情。

在该项目的 MainViewController.m 文件中,这些行:

// Get the artwork from the current media item, if it has artwork.
MPMediaItemArtwork *artwork = [currentItem valueForProperty: MPMediaItemPropertyArtwork];

// Obtain a UIImage object from the MPMediaItemArtwork object
if (artwork) {
    artworkImage = [artwork imageWithSize: CGSizeMake (30, 30)];
}

始终返回尺寸为 55 x 55、比例为 1.0 的图像。

我想说 MPMediaItemArtwork 不尊重所请求的尺寸参数是一个错误,您应该通过 bugreporter.apple.com 提交,尽管 Apple 也可能有借口说“55 x 55”是在 iPad 和 iPhone 上显示的最佳尺寸。

对于直接调整 UIImage 大小,我建议使用 Trevor Harman 的“UIImage+Resize”方法:http://vocaro.com/trevor/blog/2009/10/12/resize-a-uiimage-the-right-way http://vocaro.com/trevor/blog/2009/10/12/resize-a-uiimage-the-right-way

一旦你将他的类别扩展添加到你的项目中,你就可以通过像这样的简单调用来完成你想要的节省内存的调整大小:

UIImage *albumCover = [artwork imageWithSize:CGSizeMake(128.0f, 128.0f)];
UIImage *resizedCover = [albumCover resizedImage: CGSizeMake(128.0f, 128.0f) interpolationQuality: kCGInterpolationLow]; 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MPMediaItemArtwork 返回错误尺寸的图稿 的相关文章

  • scrollToRowAtIndexPath:atScrollPosition:动画滚动太慢

    基于分页 UIScrollView 的页面更改 我正在调用scrollToRowAtIndexPath atScrollPosition animated到所显示的该页面的表详细信息 void scrollViewDidScroll UIS
  • 如何在 iPhone 应用程序的 url 中传递字符串值

    NSURLRequest request NSURLRequest requestWithURL NSURL URLWithString http www krsconnect no community api html method ba
  • NSMutableData 删除字节?

    我可以使用以下命令轻松地将字节添加到 NSMutableData 实例appendData方法 但是我没有看到任何类似的删除数据的方法 我是否忽略了某些内容 或者我是否需要创建一个新对象并仅复制我需要的字节 请参阅以下方法的文档 void
  • 我可以使用 NSDateFormatter 将此日期字符串转换为 NSDate 吗?

    我有这个字符串 2010 08 24T16 00 00 05 00 我想从中提取时间部分 即 16 00 并将其转换为 12 小时等效值 即下午 04 00 我正在尝试使用 NSDateFormatter 来完成此任务 但它不起作用 NSD
  • 从 NSString 的第一行删除换行符

    我怎样才能删除第一个 nNSString 中的字符 编辑 只是为了澄清一下 我想做的是 如果字符串的第一行包含 n 字符 请将其删除 否则不执行任何操作 即 如果字符串是这样的 nhello this is the first line n
  • 处理 NSPropertyListSerialization 中的 CFNull 对象

    在我的应用程序中 我尝试序列化服务器响应字典并将其写入文件系统 但对于某些响应 我收到错误 属性列表格式无效 原因是服务器响应中的 CFNull 对象 现在 服务器响应将不断变化 因此我没有明确的方法来删除 CFNull 对象 下面是我的代
  • 无限 UIScrollView 在 iOS4.3 中出现奇怪的行为,而不是 iOS5

    我已经实现了一个包含 UIView 的无限 UIScrollView 在 iOS5 模拟器和 iPhone 中滚动时 效果非常好 但在 iOS 4 3 sim 和手机 中 情况有点疯狂 滚动条传递的视图比应有的多 大约比 iOS5 多 10
  • 未安装的应用程序的URL方案

    简单的问题 我正在开发一个将注册自己的 URL 方案的应用程序 我计划通过人们最喜欢的 QRCode 阅读器使用 QRCode 启动该应用程序 我的问题 如果我的应用程序尚未安装在他们的 iPhone iPad 上 会发生什么 他们会被引导
  • iOS 复合谓词

    我正在编写一个具有照片数据库的应用程序 每张照片都有多个与之关联的标签 并且该应用程序有一个带有大量切换的搜索页面 允许用户仅根据他们感兴趣的标签搜索照片 每个标签都存储了integerID 是因为它们对应于外部数据库的 ID 所以我尝试简
  • 如何将 #ifdef DEBUG 添加到 Xcode?

    我的项目中有一些代码永远不应该在发布版本中使用 但在测试时很有用 我想做这样的事情 ifdef DEBUG Run my debugging only code endif 在 Xcode 4 中哪里添加 DEBUG 设置 我尝试将其放入
  • 使用 iOS 设备作为 TCP 客户端 - 无 Bonjour

    我想使用 iOS 设备作为 TCP 客户端 但我找不到可理解的 API 指南 示例来说明如何做到这一点 我试过SimpleNetworkStreams and PictureSharing 但他们都使用 Bonjour 我可以轻松建立 UD
  • 连接到 Apple Music

    所以我尝试使用 React Native 应用程序从 iOS 设备连接到 Apple Music 有一个 API 可以执行相同的操作 但我需要从 storekit 框架调用一个函数 提出个性化请求 苹果音乐API https develop
  • insertObject:atIndex 的复杂性:

    复杂度是多少 NSArray insertObject atIndex N 或常数 另外 如何找出各种 Objective C 语句的复杂度 有一个在这里讨论 http www cocoadev com index pl NSMutable
  • 如何获取 UITableView 内容视图的大小?

    我想在填充表格时获取 UITableView 内容视图的大小 关于如何执行此操作有什么建议吗 Allows you to perform layout before the drawing cycle happens layoutIfNee
  • SDWebImage 显示缓存中图像的占位符

    在 iOS 5 1 项目 iPad 中使用 SDWebImage 3 我们展示相当大的图像 700x500 并且我们有很多图像 1000 我们预取图像并缓存到磁盘 然后允许用户浏览它们 效果很好 除了当您浏览图像时 您总是会看到占位符显示一
  • UINavigationController 在后退按钮单击时向下滚动

    我正在开发一个带有多个导航控制器的 iPhone iPad 应用程序 当我在设备处于横向模式时单击视图的后退按钮时 前一个视图会垂直滚动到屏幕中 而不是像往常一样水平滚动 推送动画始终水平工作 正如它应该的那样 是什么导致了这个奇怪的问题
  • 将 Facebook 图片 URL 上传到 Firebase 存储

    我正在尝试将用户的 Facebook 个人资料图片上传到 Firebase 存储 let dictionary result as NSDictionary let data dictionary objectForKey data let
  • 如何正确使用 nsoperationqueue 的 autoreleasepool

    我有一个正在重构的应用程序 我刚刚实现了多线程 以便 UI 可以运行得更流畅 在 iPhone 模拟器中 我没有遇到任何泄漏 但在运行 iOS 4 2 的 iPhone 3G 上进行测试时 出现了内存泄漏 我已经做了很多搜索来使用操作队列实
  • Objective-C 声明的 @property 属性(非原子、复制、强、弱)

    有人可以向我详细解释一下我何时必须使用每个属性 nonatomic copy strong weak等等 对于声明的属性 并解释每个属性的作用是什么 某种例子也很好 我正在使用ARC 非原子的 Nonatomic https stackov
  • 桌面上的 AVAudioSession?

    在 mac 桌面上 我试图录制系统声音 以及可选的麦克风声音 但一开始我只是录制系统声音 我正在遵循本指南 https www appcoda com ios avfoundation framework tutorial https ww

随机推荐

  • 如何将消息从 WH_KEYBOARD_LL 转换为 corespondig unicode char

    你好 我正在编写一个多语言应用程序 并且正在使用WH KEYBOARD LL钩 我不在乎为什么要使用钩子 我尝试了多种方法 但这是最简单 最快的方法 现在在钩子过程中 LRESULT CALLBACK LowLevelKeyboardPro
  • 在每个视图 IOS 的底部显示音乐播放器 [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我正在创建一个 IOS 应用程序 我想在每个视图的底部显示音乐播放器实例 Like this image 采用一个基本视图控制器 它将以编程
  • 使用 Robolectric 进行 Android http 测试

    我有一个 Android 应用程序 其中应用程序的主要部分是 APIcalls java 类 我在其中发出 http 请求以从服务器获取数据并在应用程序中显示数据 我想为这个 Java 类创建单元测试 因为它是应用程序的大部分 从服务器获取
  • 为什么 PreventDefault 不起作用?

    这是我的代码的一部分 如果我尝试将图像放在块上 preventDefault 不起作用 jQuery document ready function event props push dataTransfer imgDropzone on
  • Python SciPy 卷积与 fftconvolve

    我知道一般来说FFT and multiplication通常比直接更快convolve当数组比较大的时候进行操作 然而 我正在将一个很长的信号 比如 1000 万个点 与一个很短的响应 比如 1000 个点 进行卷积 在这种情况下fftc
  • 如何使用 execvp()

    用户将读取一行 我将保留第一个单词作为 execvp 的命令 假设他会打字 猫文件 txt 命令将是 cat 但我不知道如何使用这个execvp 我读了一些教程 但还是没明白 include
  • 依赖注入容器有什么好处?

    我了解依赖注入本身的好处 我们以 Spring 为例 我还了解其他 Spring 功能的好处 例如 AOP 不同类型的帮助器等 我只是想知道 XML 配置有什么好处 例如
  • Java 安全性:通过 URLClassLoader 加载的沙箱插件

    问题摘要 如何修改下面的代码 以便不受信任的动态加载代码在安全沙箱中运行 而应用程序的其余部分保持不受限制 为什么 URLClassLoader 不像它所说的那样处理它 编辑 更新以回应 Ani B 编辑 2 添加了更新的 PluginSe
  • 无法从动态添加的复选框获取值

    单击按钮时我添加了一个复选框 最后需要通过单击提交按钮来获取所有选中的复选框值 这是我的代码 mIncrementButton setOnClickListener new View OnClickListener Override pub
  • 使用 gmaven 插件获取 org.codehaus.groovy.control.MultipleCompilationErrorsException

    这是我的示例程序 在使用 mvn 编译时它会抛出编译错误 我正在尝试使用 ExpandoMetaClass 添加静态方法 Singleton class ThrowError def parse println Anish ThrowErr
  • Android 中无法使用 WebView 加载网页

    我最近开始从事 Android 开发 并且希望使用 WebView 显示网页 我从 Google 网站上提供的示例中获取 由于某种原因 模拟器一直说页面不可用 我在 StackOverflow 中搜索并找到了与 WebViewClient
  • 在对象的生命周期中,“this”指针的值是否恒定?

    的值是this保证指针在特定对象的生命周期内保持不变 我无法想象它会改变的情况 但不知道我是否错过了一些东西 的值是this保证指针在特定对象的生命周期内保持不变 Yes As user Aconcagua https stackoverf
  • 精确测量线程中代码的执行时间(C#)

    我试图在多个线程上尽可能准确地测量某些代码的执行时间 同时考虑上下文切换和线程停机时间 该应用程序是用 C VS 2008 实现的 例子 public void ThreadFunc Some code here Critical bloc
  • 如何使用 Python 将 HTML 电子邮件另存为 Outlook 文件?

    有人在 Outlook 中创建了一个不错的电子邮件模板并将其发送给我以实现自动化 我打开了 HTML 格式的电子邮件 并使用该 HTML 重新创建了准确的电子邮件图像 格式等 我可以很好地发送这封电子邮件 但随后有人问我是否可以将所有电子邮
  • h:commandLink 的 oncomplete 属性未调用

    我们正在从 JSF 1 2 迁移到 JSF 2 2 6 以及 RichFaces 4 5 2 面临的问题oncomplete没有被叫到 期间的JS函数onclick被调用 但是 JS 在oncomplete没有被调用 这是如何引起的以及如何
  • 后端基于休息的服务

    我们建立了一个超过 3000 万用户的在线社区 该社区的后端有 RESTful 服务 前端也使用这些服务 我担心的是 与Java的二进制序列化协议 取决于语言 相比 使用REST作为内部数据传输协议是否可以 或者它会显着降低性能 可以使用哪
  • WordPress 网站显示内联 css 代码

    我正在一个网站上工作http kaniamea com turtle http kaniamea com turtle 如果您查看源代码 您将看到以下内容 这是内联代码 它随主题一起提供 有没有办法在子文件夹中的单独样式表中组织此代码 还有
  • 数据库连接自动重新连接

    我在 Tomcat 中有一个 DBCP 连接池 问题是 当连接短暂丢失时 应用程序就会中断 因为 DBCP 不会在稍后有连接时尝试再次重新连接 我可以让 DBCP 自动重新连接吗 有两种方法可以 解决 这个问题 尽管两者都存在一些问题 您可
  • 从 SQL Server 中的行创建列

    我有一个 SQL 查询 它提供以下格式的数据 Total Hours Year 100 00 2012 200 00 2012 300 00 2012 75 00 2011 150 00 2011 50 00 2010 125 00 201
  • MPMediaItemArtwork 返回错误尺寸的图稿

    我发现 MPMediaItemArtwork 存在一个一致的问题 即它返回的图稿尺寸与我请求的尺寸不同 我正在使用的代码如下 MPMediaItem representativeItem self representativeItems o