Question

Salut je besoin de jouer une chanson de la bibliothèque itunes. J'étais allé à travers les pommes ipod Bibliothèque Guide d'accès et a obtenu le code.

MPMediaQuery *everything = [[MPMediaQuery alloc] init];
NSLog(@"Logging items from a generic query...");
NSArray *itemsFromGenericQuery = [everything items];
MPMediaItem *song;
for (song in itemsFromGenericQuery) 
{
    NSString *songTitle = [song valueForProperty: MPMediaItemPropertyTitle];
    NSLog (@"%@", songTitle);
}

//assign a playback queue containing all media items on the device
[myPlayer setQueueWithQuery:everything];//setQueueWithQuery:everything];

//start playing from the begining
[myPlayer play];

Mais ce va commencer à jouer dès le début de la liste des bibliothèques. Je dois jouer une chanson quand je le sélectionner dans la liste. Quelqu'un peut-il me aider ... s'il vous plaît

Merci, Shibin.

Était-ce utile?

La solution

avec l'instance de MPMediaPickerController vous pouvez choisir parmi la liste des chansons de la bibliothèque iPod, liste des albums, etc .. Voici un exemple qui sélectionne toutes les chansons de l'iPod et affiche dans un contrôleur de vue modal.

- (IBAction) selectSong: (id) sender 
{   
    MPMediaPickerController *picker =
    [[MPMediaPickerController alloc] initWithMediaTypes: MPMediaTypeMusic];

    picker.delegate                     = self;
    picker.allowsPickingMultipleItems   = NO;
    picker.prompt                       = NSLocalizedString (@"Select any song from the list", @"Prompt to user to choose some songs to play");

    [self presentModalViewController: picker animated: YES];
    [picker release]; 
}

Maintenant, vous devez mettre en œuvre le délégué pour enregistrer la chanson dans votre variable locale. Ici, selectedSongCollection est une instance de MPMediaItemCollection.

- (void) mediaPicker: (MPMediaPickerController *) mediaPicker didPickMediaItems: (MPMediaItemCollection *) mediaItemCollection 
{
    [self dismissModalViewControllerAnimated: YES];
    selectedSongCollection=mediaItemCollection; 
}

Une fois que vous avez terminé avec la sélection de la chanson, mettre en œuvre le délégué de rejeter le sélecteur:

- (void) mediaPickerDidCancel: (MPMediaPickerController *) mediaPicker 
{   
    [self dismissModalViewControllerAnimated: YES]; 
}

Autres conseils

Vous assignez une liste de lecture de toutes les chansons au lecteur de musique, donc bien sûr, il va jouer toute la liste, en commençant au début. Si vous voulez que l'utilisateur de sélectionner une chanson spécifique à partir de la bibliothèque iPod, utilisez MPMediaPickerController.

Je ne pouvais pas utiliser theMPMediaPickerController dans mon scénario.

Ma courte réponse à la question est de jeter un oeil à [musicplayer setNowPlayingItem:item]

est ici un code ci-dessous de ma mise en œuvre.

// Create a new query
MPMediaQuery *query = [MPMediaQuery songsQuery];
MPMediaPropertyPredicate *mpp = [MPMediaPropertyPredicate predicateWithValue:@"a" forProperty:MPMediaItemPropertyTitle comparisonType:MPMediaPredicateComparisonContains];
[query addFilterPredicate:mpp]; 

// Retrieve the results and reload the table data
DATAENV.songCollections = [NSMutableArray arrayWithArray:query.collections];

//populate cell rows with 

- (UITableViewCell *)tableView:(UITableView *)tView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    MPMediaItem *item = [[[DATAENV.songCollections objectAtIndex:indexPath.row] items] lastObject];
    titleLbl = [item valueForProperty:MPMediaItemPropertyTitle];
}

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    MPMediaItem *item = [[[self.songCollections objectAtIndex:indexPath.row] items] lastObject];
    [PLAYER setNowPlayingItem:item];
    [PLAYER play];
}

Où PLAYER / DATAENV sont mes singletons

#define PLAYER  [[AudioController sharedAudioController_instance] musicPlayer]
#define DATAENV [DataEnvironment sharedDataEnvironment_instance]
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top