播放 iPod 库中的歌曲,只有标题
Posted
技术标签:
【中文标题】播放 iPod 库中的歌曲,只有标题【英文标题】:Play song from iPod library, having only its title 【发布时间】:2011-11-10 14:43:12 【问题描述】:我需要使用歌曲名称在另一个 ios 应用程序中开始播放歌曲(位于 iPod 库中)。
我研究了一些 MediaPlayer 框架,但没有发现任何有用的东西。 我知道这是可以做到的,就像 App Store 中的几个应用程序一样,例如 SoundHound,如果你的 iPod 库中有你发现的某首歌曲,它可以让你播放它。
【问题讨论】:
【参考方案1】:试试这个: http://mobile.tutsplus.com/tutorials/iphone/ios-sdk-music-library-access/
编辑:
你可以试试这个来获取歌曲:
#pragma mark - Media Picker
- (IBAction)showMediaPicker:(id)sender
MPMediaPickerController *mediaPicker = [[MPMediaPickerController alloc] initWithMediaTypes: MPMediaTypeAny];
mediaPicker.delegate = self;
mediaPicker.allowsPickingMultipleItems = YES;
mediaPicker.prompt = @"Select songs to play";
[self presentModalViewController:mediaPicker animated:YES];
[mediaPicker release];
- (void) mediaPicker: (MPMediaPickerController *) mediaPicker didPickMediaItems: (MPMediaItemCollection *) mediaItemCollection
if (mediaItemCollection)
[musicPlayer setQueueWithItemCollection: mediaItemCollection];
[musicPlayer play];
[self dismissModalViewControllerAnimated: YES];
- (void) mediaPickerDidCancel: (MPMediaPickerController *) mediaPicker
[self dismissModalViewControllerAnimated: YES];
【讨论】:
虽然理论上这可以回答这个问题,it would be preferable 在这里包含答案的基本部分,并提供链接以供参考。【参考方案2】:如果您想播放具有特定标题的歌曲,而不需要用户使用媒体选择器手动选择歌曲,您可能想尝试使用歌曲标题的媒体播放器查询。
MPMediaPropertyPredicate *titlePredicate =
[MPMediaPropertyPredicate predicateWithValue:searchText
forProperty:MPMediaItemPropertyTitle
comparisonType:MPMediaPredicateComparisonContains];
NSSet *predicates = [NSSet setWithObjects: titlePredicate, nil];
MPMediaQuery *songsQuery = [[MPMediaQuery alloc] initWithFilterPredicates: predicates];
NSLog(@"%@", [songsQuery items]);
MPMediaQuery search for Artists, Albums, and Songs 有很好的代码示例和更多关于查询的讨论
【讨论】:
以上是关于播放 iPod 库中的歌曲,只有标题的主要内容,如果未能解决你的问题,请参考以下文章
如何将歌曲从 iPod 库复制到应用程序并使用 AVAudioPlayer 播放?