Je travaille actuellement sur une application audio sur iPhone. Il est basé sur l'exemple de code SpeakHere de Apple avec un fichier d'entrée défini par l'utilisateur à partir de la bibliothèque de l'iPod.Le sélecteur de média iOS n'apparaît pas
Voici l'événement déclenché par le bouton:
- (IBAction) btn_PickSong_Clicked:(id)sender{
[self showMediaPicker];
//code importing tracks from library
}
Et dans la méthode showMediaPicker:
//Yup the program does reach this method but the picker does not show up
- (void)showMediaPicker {
MPMediaPickerController* mediaPicker = [[[MPMediaPickerController alloc] initWithMediaTypes:MPMediaTypeMusic] autorelease];
mediaPicker.delegate = self;
[self presentModalViewController:mediaPicker animated:YES];
}
Les problèmes sont les suivants:
La fonction d'importation de la bibliothèque fonctionne très bien dans un programme distinct, mais le sélecteur de média ne s'affiche plus lorsque je mets le code dans
SpeakHereController.mm
.De plus, si je place la méthode showMediaPicker dans une autre classe et l'appelle, cela ne fonctionne pas non plus.
Quelque chose que je trouve qu'il pourrait être utile:
Le code original est dans un fichier Obj-C (xxx.m), et maintenant il est transféré dans un obj-C++ fichier (xxx .mm).
J'ai également modifié la classe de base de
SpeakHereController.h
NSObject
-UIViewController<MPMediaPickerControllerDelegate>
sinon il va jeter un avertissement que la classe de base ne contient pas le délégué requis. Mais dans le constructeur de l'interface, il est toujours affiché en tant qu'objet (Veuillez vous référer à l'exemple de code SpeakHere).Il semble qu'il est illégal de convertir le fichier intégré
xxxViewController.m
en fichier obj-C++ (extension .mm). Dans ce cas, beaucoup d'erreurs apparaîtront si je tente de le faire. Est-ce vrai? Si oui, comment inclure du code C++ dans un fichier obj-C pur?
=============
Alors, comment puis-je faire le sélecteur de médias apparaissent dans ce cas? Toute perspicacité sera appréciée.
Merci beaucoup!
Cheers,
Manca
De quelles fonctionnalités C++ spécifiques avez-vous besoin dans votre contrôleur, et pourquoi? –
@Peter DeWeese c'est le CAStreamDescription.cpp, qui est fourni par iPublicUtility d'apple. Chaque fois que j'essaie de l'importer dans mon contrôleur de vue, beaucoup d'erreurs se produisent dans leurs méthodes en ligne. Je suppose que cela pourrait être le problème. – Manca