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 返回错误尺寸的图稿 的相关文章

  • 从一个模态视图无缝翻转到另一个模态视图,而不显示纯色背景

    我的 iPad 应用程序的 UI 如下 当我点击Settings按钮 我希望对话框水平翻转以显示设置对话框 我这个工作正常 但是 当对话翻转时会显示背景颜色 如你看到的 有什么办法可以让对话框翻转时不显示该颜色块吗 我希望它看起来更加无缝
  • 从按钮执行 Segue 时应用程序冻结

    我的故事板中有一个按钮 它呈现一个带有模式序列的视图控制器 每次按下此按钮时 应用程序都会冻结 没有崩溃 也没有错误消息 prepareForSegue被调用 所有应该存在的视图控制器都在代码中prepareForSegue 但它们不会出现
  • 为什么 iOS 启动屏幕很慢?

    我的 iOS 应用程序启动屏幕大约需要 3 5 秒 我有一张将在启动屏幕后加载的地图 我的用户必须等待启动屏幕加载 然后再等待 3 秒才能加载地图 有没有办法最大限度地减少启动屏幕时间 基本上这种延迟意味着you在启动过程中做了一些非常错误
  • Objective-C NSString for 循环与characterAtIndex

    我试图逐个字符地循环遍历 NSString 但出现 EXC BAD ACCESS 错误 您知道如何正确执行此操作吗 我已经在谷歌上搜索了几个小时但无法弄清楚 这是我的代码 m self textLength self text length
  • 如何让UITextView背景线与文字对齐?

    我正在尝试绘制 UITextView 的背景线 这是我用来画这些线的代码 CGContextBeginPath context CGContextSetStrokeColorWithColor context self horizontal
  • 从命令行添加 Xcode 开发者帐户

    我正在尝试使用xcodebuild allowProvisioningUpdates在我只能通过命令行访问的计算机 Azure Devops macOS 托管计算机 上 不幸的是 根据man xcodebuild为了使用 allowProv
  • AVAssetExportSession 无法导出从 iCloud 下载的视频

    我正在尝试创建从用户相册中选择的视频的缩小版本 输出的最大尺寸为 720p 因此 在检索视频时 我使用 mediumQualityFormat as the deliveryMode 如果用户设备中不存在原始视频或其中等质量版本 这会导致
  • UIViewControllerAnimatedTransitioning:旋转更改后黑屏片段

    我已经创建了一个视图控制器转换 只要我不更改设备方向 一切都正常 图 1 显示了应有的屏幕 然后我切换到下一个视图控制器 在其中更改方向 现在我回到第一个视图控制器并再次切换方向 然后我得到的结果如图 2 所示 出现黑色边框 请不要介意屏幕
  • Cocoa 应用程序菜单栏不可点击

    我正在我的可可应用程序中构建一个菜单栏 其中包含以下代码 implementation我的自定义应用程序CustomApplication void setUpMenuBar CustomApplication sharedApplicat
  • 如何在没有 SDK 的情况下在 Objective C 中为 S3 创建预签名 URL?

    我正在构建一个 mac 应用程序not使用 AWS iOS 开发工具包 我尝试构建的 GET 请求应遵循以下通用格式 Authorization AWS AWSAccessKeyId base64 hmac sha1 VERB n CONT
  • UIPickerView selectRow 未按预期工作

    我创建了一个UIPickerView它有两个组件 第一个组件 A 的行数固定为 13 另一个组件 B 的行数可变 具体取决于 A 中选择的行 加载时UIPickerView我调用以下命令 以便我可以在两个组件中默认选择 但是我遇到的问题是只
  • UITableViewCell显示多种字体

    我想在 uitableviewcell 中以类似于 iPhone 地址簿的不同字体显示两个单词 例如 约翰Buchanan 您应该使用两个 UILable 或者您可以使用OH属性标签 https github com AliSoftware
  • 在 UIWebView 中播放 Facebook 视频

    有谁知道如何在 Facebook 上播放视频UIWebView 我的应用程序将视频上 传到 Facebook 并检索视频的网址 我想将此网址嵌入到UIWebView播放 我已经为 youtube 解决了这个问题 但没有为 Facebook
  • 在实例化对象之前是否可以检查故事板中是否存在标识符?

    在我的代码中我有这一行 但我想知道是否有办法检查是否 一些控制器 在我将它与 一起使用之前就存在实例化ViewControllerWithIdentifier 方法 如果标识符不存在 则应用程序崩溃 如果没有好的方法 这并不是一个大问题 我
  • 如果我使用自定义 UITableViewCell,是否需要设置 heightForRowAtIndexPath?

    如果我使用自定义 UITableViewCell 是否需要设置 heightForRowAtIndexPath 在我的 NIB 中 我已经设置了单元高度 当我覆盖 heightForRowAtIndexPath 时 单元格的内容不会出现 即
  • 叠加 SKScene 未显示

    我正在尝试将 SKScene 覆盖在 SCNScene 上 当我在模拟器和 iPhone6 上运行我的应用程序时 overlayScene SKScene 按预期显示 但是当我尝试在 iPhone5 上运行它 尝试了 2 个不同的设备 时
  • 如何在 UICollectionView 中将行居中?

    我有一个UICollectionView与随机细胞 有什么方法可以让我将行居中吗 默认情况下它是这样的 x x x x x x x x x x x x x x 这是所需的布局 x x x x x x x x x x x x 我必须做这样的事
  • 在 Swift 中从 Parse 加载图像

    我成功地将数据从 Parse 提取到 swift 中 但我的图像似乎没有按照我的方式工作 在我的 cellForRowAtIndexPath 方法中 我执行以下操作 var event AnyObject eventContainerArr
  • 为什么 Objective-C 允许在方法定义末尾使用分号? [复制]

    这个问题在这里已经有答案了 可能的重复 Objective C 实现文件中方法名后面的分号 https stackoverflow com questions 5678360 semicolon after the method name
  • 是否可以跨 2 个不同的 iOS 应用程序访问数据?

    假设我在 App1 中存储了一些 ID 数据 并希望在同一设备上的 App2 中访问它 平台上可以这样吗 如果没有的话有什么解决方法吗 您可以使用iOS 钥匙扣 http developer apple com library ios do

随机推荐

  • 如何将消息从 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