问题标签 [mpmediaquery]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
6754 浏览

ios - 如何在 iOS 的 MPMusicPlayerController 中播放 MPMediaItem?

我正在尝试MPMedaiItemMPMusicPlayerControlleriOS 中玩。就我而言,我有一个UITableView显示播放列表中的歌曲。当我点击手机时UITableView,我想播放那首歌MPMusicPlayerController。当我点击下一个按钮时,我还想跳过播放列表中的下一首歌曲。我怎么玩?

didSelected这是我用Method of编写的一些代码UITableView。那什么都玩不了。

0 投票
1 回答
2458 浏览

ios - MPMediaQuery 和 iTunes 匹配的问题

我需要显示设备上当前所有播放列表的列表。问题是,在打开 iTunes Match 的设备上,任何数量的播放列表都可能在手机上保存零个项目。由于(据我所知)没有可靠的方法来触发MPMediaItem download您使用的AVAudioPlayer,我想过滤掉任何没有任何本地条目的播放列表。现在我可以让它循环播放单个播放列表并删除没有assetURL. 我尝试过滤整个音乐库以获取播放列表

但是,当我循环浏览“收藏”数组时,它似乎根本没有过滤掉任何歌曲。我会尝试按歌曲是否有 过滤assetURL,但当然你不能过滤。

有没有人有一个相当快速的方法来完成这个?(或者,有没有人想出一种体面的方法来触发MPMediaItem download,因为 Apple 没有关于处理 iTunes Match 的开发人员文档?)

0 投票
3 回答
1703 浏览

ios - 如何使用 MPMediaQuery 检索艺术家列表?

您好,我正在尝试使用以下代码在 iOS 中使用 MPMediaQuery 检索艺术家。

In My ViewDidLenter code here负载

在我的cellForRowAtIndexPath

当我检查时NSLog,我的arrayOfArtist计数约为 330。

然而在我UITableView的,它只是 show NULL

有什么我错了吗?

0 投票
1 回答
967 浏览

iphone - 在 iOS 中创建播放列表?

是否可以像在第 3 方编程应用程序的音乐应用程序中一样创建、命名和保存 iTunes 播放列表?如果是这样,怎么做?

0 投票
2 回答
3002 浏览

ios - 在 iOS 中检索按最后播放时间排序的歌曲列表

我需要按顺序从 iOS 设备中获取最近播放的N首歌曲的列表。

目前,我能想象到的唯一方法是通过 an 获取所有歌曲MPMediaQuery并手动对它们进行排序lastPlayedDate

这是一个潜在的昂贵操作,我想知道是否有更好的方法。


编辑:经过一些测试,这是一项非常昂贵的操作。在包含 2500 首歌曲的测试库中,大约需要 20 秒:

  1. 获取所有歌曲。
  2. 为所有从未播放过的歌曲指定一个日期(1970 年 1 月 1 日)。
  3. 按日期订购。
  4. 获取前N个条目。

任何改进建议将不胜感激。


编辑2:现在解决了,但只是为了记录,这就是我正在做的事情。

我正在使用此处描述的块进行排序:https ://stackoverflow.com/a/805589/112702 。只需将排序方法更改为 Bryan 的答案,我在 iPod Touch 3 上的速度提高了近 20 倍。

0 投票
1 回答
1696 浏览

ios - 带有 iCloud 过滤谓词的 MPMediaQuery playlistQuery 返回集合中不正确的项目数

我已经成功过滤掉了 iCloud 中除播放列表之外的应用程序每个部分的所有项目。在显示播放列表列表时,每个单元格内都有一个子标题,用于读取该播放列表中的曲目数量。问题是集合中的项目数不正确(尽管查询本身的项目总数是正确的)。

代码:

日志:

0 投票
2 回答
298 浏览

objective-c - 相同的代码,不同的结果 - MPMediaQuery 的方法“collectionSections”

首先,我想说我的英语说得不太好。请理解TT

我在 Xcode 中输入了代码。

在songsQuery中,有很多以AZ开头的歌曲,还有其他歌曲。

而且,我使用了 'collectionSections' 方法

而且,我使用 NSLog 登录。签入 songSectionArray

正常输出了。它没有问题

但是,我复制了代码并粘贴了。

并登录。

然后,它有问题TT

结果不一样

这是正常输出:

这是我复制代码的输出:

代码显然是一样的。但是为什么输出不一样呢?

如果您知道解决方案,请帮助我

0 投票
1 回答
682 浏览

ios - 播放列表的 MPMediaQuery(在 iPod 上)包括一些专辑

我已经实例化了一个查询来请求我 iPod Touch 上所有播放列表的集合。从 MPMediaQuery 集合属性返回的结果包含 43 个项目。其中包括原生音乐应用程序显示的所有 17 个播放列表。但是,该集合还包含 26 个“播放列表”,它们实际上是我的 iPod 库中的专辑。这代表了 iPod 上的一些(但不是全部)专辑。

我试图查看是否有 MPMediaPlaylist 属性可以将专辑与实际播放列表区分开来,但无济于事。我查看了收藏的各个部分,看看真正的播放列表是否保存在与专辑不同的部分中,但只有一个部分。最后,我查看了专辑是否有 PersistantID,文档表明它是播放列表独有的。数组中的所有项目都有一个 PersistantID。

音乐应用程序只显示 17 个实际播放列表没有问题,所以一定有我遗漏的东西。这是用于构建查询的代码:

以下是询问“播放列表”数组的内容时记录的数据示例:

==================================================== ===
播放列表列表
.... 播放列表集合中有 01 个部分.... 播放列表集合 Bach
中有 43 个 MPMediaPlaylist 对象 .... Persistant ID: 17002820337772537981 Best of Simon and Garfunkel .... Persistant ID: 2965021518813542622 Blue .... 持久 ID: 11514004552991695558 Blues .... 持久 ID: 14243796139384893728 .... (etc)








在上面的列表中,条目“Bach”、“Best of Simon and Garfunkel”和“Blue”代表专辑。条目“Blues”代表了我在 iTunes 上定义的第一个真正的播放列表。

我想我可以将播放列表查询返回的项目与专辑查询中的项目进行比较,并消除任何匹配项。有没有更直接的解决方案?

0 投票
2 回答
686 浏览

ios - 如何从 iPod Library 中的 MPMediaItems 中获取“购买日期”或“添加日期”

当用户从 iTunes Store 将新歌曲下载到他们的 iPod 音乐库中时,我想以编程方式在表格视图中列出这些歌曲。是否可以从 MPMediaItemCollection 中获取“添加日期”或“购买日期”?我看到有诸如播放计数和上次播放日期之类的属性键。我知道数据存在,因为它可以在 iTunes 中查看,但我没有找到它。关于在哪里找到它或如何得出它的任何建议?

0 投票
2 回答
1298 浏览

objective-c - 将所有视频(来自照片库和视频应用程序)列出到 uitableviewcell

我想列出所有视频。不仅是照片库中的视频,还包括视频应用程序中的视频,包括电影、电视节目、音乐视频等进入我的应用程序。

当我像这样使用 ALAsset 时:

在 (UITableViewCell *)tableView:cellForRowAtIndexPath: 方法中,只会显示照片库中的视频。有没有办法获得所有类型?

提前致谢