2011-11-10 27 views
0

我需要使用歌曲的名稱在另一個iOS應用程序中開始播放歌曲(位於iPod庫中)。從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]; 
} 
+1

雖然這對查詢的詳細討論可以在理論上回答這個問題,[這將是優選的](http://meta.stackexchange.com/q/ 8259)在這裏包括答案的重要部分,並提供參考鏈接。 – codingbadger

+0

這是我的不好,對不起兄弟,謝謝你的建議 – relower

+0

沒問題。感謝您編輯您的答案。 – codingbadger

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]); 

有良好的代碼的例子和在MPMediaQuery search for Artists, Albums, and Songs