我需要使用歌曲的名称开始在另一个iOS应用中播放一首歌(在iPod库中)。
我研究了一些MediaPlayer框架,但没有找到任何有用的东西。 我知道这可以做到,就像App Store中的一些应用程序那样,例如SoundHound,它可以播放你在iPod库中发现的某首歌。
答案 0 :(得分: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];
}
答案 1 :(得分:0)
如果您想播放具有特定标题的歌曲,而无需用户使用媒体选择器手动选择歌曲,您可能需要使用歌曲标题尝试媒体播放器查询。
MPMediaPropertyPredicate *titlePredicate =
[MPMediaPropertyPredicate predicateWithValue:searchText
forProperty:MPMediaItemPropertyTitle
comparisonType:MPMediaPredicateComparisonContains];
NSSet *predicates = [NSSet setWithObjects: titlePredicate, nil];
MPMediaQuery *songsQuery = [[MPMediaQuery alloc] initWithFilterPredicates: predicates];
NSLog(@"%@", [songsQuery items]);
上有很好的代码示例和有关查询的更多讨论