Tag: mpmediaitem

所有tableView单元格显示相同的艺术作品图像的播放列表

我有一个tableView显示用户的音乐库播放列表的列表。 我用来得到这个列表的代码是: @implementation playlistsViewController { NSArray *playlists; MPMediaQuery *playlistsQuery; } – (void)viewDidLoad { self.title = @"Playlists"; playlistsQuery = [MPMediaQuery playlistsQuery]; playlists = [playlistsQuery collections]; } #pragma mark – Table view data source – (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { return [playlists count]; } – (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { …. // Configure the cell… MPMediaItem *rowItem […]

是否有可能获得与MPMediaItemvideo相关的元信息?

我正在做一些MPMediaItems的工作,特别是我试图得到用户设备上的video列表。 现在,来自iTunes的video将被locking,因此无法从第三方应用播放,但用户添加的video(如家庭电影)可以播放,即使是来自iTunes的用户也可以查看并显示其元信息。 但是,这里是我越来越绊倒:我似乎无法find这些文件的任何video特定元信息? MPMediaItem类的引用有一个很长的属性列表,你可以访问,但他们大多是audio特定的。 像MPMediaItemPropertyAlbumTitle或MPMediaItemPropertyComposer 。 甚至还有一个专门针对Podcast的属性,但似乎找不到像“Season Number”或“Episode Number”或“Show Title”之类的内容。 这些信息显然是由iTunes存储的,而且是由内部的video应用程序显示的,但我找不到任何方法来获取它自己。 这些是我可以在类参考中find的唯一字段: NSString *const MPMediaItemPropertyPersistentID ; // filterable NSString *const MPMediaItemPropertyAlbumPersistentID ; // filterable NSString *const MPMediaItemPropertyArtistPersistentID ; // filterable NSString *const MPMediaItemPropertyAlbumArtistPersistentID ; // filterable NSString *const MPMediaItemPropertyGenrePersistentID ; // filterable NSString *const MPMediaItemPropertyComposerPersistentID ; // filterable NSString *const MPMediaItemPropertyPodcastPersistentID ; // filterable NSString […]

从iPodLibrary获取播客元数据

贝娄是在iOS设备的iPod库中获取项目的代码,我遇到的问题是获取正确的MPMediaItemProperty 。 我理解的方式,如果我想获得像艺术品,评论标题的数据 – 我必须采取MPMediaItemCollection类的媒体项目在我的- (MPMediaItem *)mediaItemForRow: (NSInteger)row方法。 这个问题是,我没有得到苹果公司的相同信息 – 因为我已经检查了他们的播客应用程序。 他们必须使用其他方式获取数据,因为我只收到来自每个单独的播客插曲的评论。 而且我也只能得到某些播客的艺术作品。 而在播客应用程序,他们都有艺术品。 所以我一定在这里做错了什么? @interface testclassViewController () @property (nonatomic, strong) NSArray *audiobooks; @end @implementation testclassViewController – (void)viewDidLoad { [super viewDidLoad]; MPMediaItem *mediaItem = [self mediaItemForRow:0]; self.testText.text = [mediaItem valueForProperty:MPMediaItemPropertyComments]; MPMediaItemArtwork *img = [mediaItem valueForProperty:MPMediaItemPropertyArtwork]; UIImage *artworkUIImage = [img imageWithSize:CGSizeMake (128, 128)]; self.testImage.image = artworkUIImage; […]

使用委托从button传递信息突出显示单元格

我有一个父视图控制器和一个子视图控制器,我需要将信息从子视图控制器中的button传回到父视图控制器,以便正确的tableViewCell文本被高亮显示。 在父视图控制器中,单击单元格时,单元格文本将突出显示,并且子视图控制器会在屏幕上popup并播放选定的歌曲。 但是,在子视图控制器中有一个向后跳过并跳过前进button,所以当按下其中任何一个button并且再次显示父视图控制器时, 单元格文本现在需要突出显示与之前突出显示的单元格不同的单元格 。 所以我已经为每个视图控制器添加了适当的委托样板代码,但我不确定从子视图控制器获取的最佳信息以发回到父视图控制器,以及如何使用它。 子视图控制器 : -(IBAction)indexChanged:(UISegmentedControl *)sender { NSURL *musicFile = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"Blip_Select" ofType:@"wav"]]; AVAudioPlayer *click = [[AVAudioPlayer alloc] initWithContentsOfURL:musicFile error:nil]; switch (self.segmentedControl.selectedSegmentIndex) { case 0: [click play]; [click play]; [musicPlayer skipToPreviousItem]; break; case 1: [click play]; if ([musicPlayer playbackState] == MPMusicPlaybackStatePlaying) { [musicPlayer pause]; } else { [musicPlayer play]; […]

'NSInvalidArgumentException',原因:' – :无法识别的select器发送

我正在尝试使用AVPlayer播放MediaItem,稍后尝试获取当前项目的持续时间(持续时间是CMTimetypes的对象): duration = [[player currentItem] duration]; 我在iPad上没有问题,但在iPod Touch中,我收到以下错误消息。 我还没有在iPhone中尝试过。 终止由于未捕获的exception'NSInvalidArgumentException'的应用程序,原因:' – [AVPlayerItem持续时间]:无法识别的select发送到实例0x186100' 任何指向修复的指针将不胜感激。

不能下标types的值

我试图执行此代码,以获得用户可以在他们的手机上的所有音乐播放列表。 var queryPlaylists = MPMediaQuery.playlistsQuery() print(queryPlaylists.collections[0]) 但是,当我尝试访问queryPlaylists.collections的任何元素时,我得到一个编译错误: 不能下标[MPMediaItem]types的值。 从上面的数组中,这对我没有任何意义。 另外这个用于xcode 7.0之前的工作。

将MPMediaItem添加到iTunes资料库时获取date

可能吗? 我没有在MPMediaItemProperty …string中find像这样的东西。 也许私人API?

将MPMediaItem转换为NSData

我试图将一个MPMediaItem转换为NSData对象,所以我可以用AVAudioPlayer播放它。 下面的答案是张贴了一个类似的问题,回到了如何做到这一点: MPMediaItems原始歌曲数据 当然你可以访问MPMediaItem的数据。 这一次不是很清楚,但是很有效。 就是这样: 从MPMediaItemPropertyAssetURL属性中获取媒体项目的URL使用此URL初始化AVURLAsset使用此资源初始化AVAssetReader从AVURLAsset获取您想要读取的AVAssetTrack使用此轨道创buildAVAssetReaderTrackOutput将此输出添加到之前创build的AVAssetReader中并将-startReading提取所有数据与AVAssetReaderTrackOutput的-copyNextSampleBuffer利润! 用'copyNextSampleBuffer'获取数据后,我现在有一个CMSampleBufferRef对象。 我如何从这里继续? 谢谢,吉利

如何获得MPMediaItem(有声读物)个别章节

我知道我可以从iPod库中获得所有的有声读物: MPMediaPropertyPredicate *abPredicate = [MPMediaPropertyPredicate predicateWithValue:[NSNumber numberWithInt:MPMediaTypeAudioBook] forProperty:MPMediaItemPropertyMediaType]; MPMediaQuery *abQuery = [[MPMediaQuery alloc] init]; [abQuery addFilterPredicate:abPredicate]; [abQuery setGroupingType:MPMediaGroupingAlbum]; NSArray *books = [abQuery collections]; 我可以通过使用这个获得每本书的部分/文件: [book items]; 我无法弄清楚如何获得构成每个部分的单独章节。 我知道你可以在iPod应用程序中看到这一点,通过点击右上angular的“轨道”button,同时玩一本书。 这会翻转玩家并显示章节列表。 是苹果使用私人API来得到这个?

苹果音乐脱机文件没有url?

看起来MPMediaItemPropertyAssetURL上的MPMediaItem属性在文件是Apple Music中的文件并且已经“脱机使用”时返回null。 另一方面,我上传到iTunes匹配/苹果音乐,然后使其可用的原始库中的项目似乎没有这个问题。 这是一个错误? 我做错了什么? 任何人有类似的问题?