Probleme avec FrameWork MEDIAPLAYER

al33eral33er Membre
20:28 modifié dans API UIKit #1
Bonjour,

J'ai une application qui existe depuis le premier firmware de développement.

Avec la version 3.0, je veux rajouter une fonction de lecture de piste de l'iPod.

Je rajoute donc le framework et j'écris le code suivant :

#import "FlipsideViewController.h"
#import "MainViewController.h"
#import "RadioViewController.h"
#import <MediaPlayer/MediaPlayer.h>
#import "RootViewController.h"



@implementation FlipsideViewController

@synthesize urlradiotext, urlradionom;
@synthesize urlradiostring;
@synthesize datepicker;
@synthesize radiotext, myAlertMessage,myAlarm;
@synthesize userDefault,radioDict,radioArray;
@synthesize button1,button2,button3,button4,button5,button6,button7,button8,button9,button10,button11,button12;
@synthesize rootViewController,temps,longTouchTimer;
@synthesize myImage;

- (IBAction) appuielong:(id) sender {

MPMediaQuery *myMPMediaQuery = [MPMediaQuery playlistsQuery];
A la compilation, il me dit que MPMEdiaQuery (fait parti pourtant de Mediaplayer) n'excite pas. Je n'y comprend rien



if  ([[userDefault stringForKey:@defaultradio] isEqualToString:@NO] == YES) {

longTouchTimer = [NSTimer scheduledTimerWithTimeInterval:2. target:self
selector:@selector(longTouchAction:) userInfo:sender repeats:NO];
}
}

J'ai créé un nouveau projet, ou je ne fait que rajouter le framework et ecrire la ligne, je compile et là  ça passe.

On a l'impression que le nouveau Framework n'est pas pris en compte.

Avez-vous une idée ?

Merci d'avance.

Alexandre.

Réponses

  • AliGatorAliGator Membre, Modérateur
    mai 2009 modifié #2
    Vérifie bien que tu as ajouté le MediaPlayer.framework du SDK 3.0 et que le "Base SDK" de ton projet est bien le SDK 3.0, aussi ?
    Parce qu'il me semble si je ne dis pas de bétises que le framework MediaPlayer existe depuis bien avant le SDK 3.0... mais qu'avant le SDK 3.0 y'avait pas cette classe MPMediaQuery justement, qui n'est apparue que dans le 3.0, non ? Donc il semble vraiment t'inclure le MediaPlayer.framework d'une ancienne version du SDK.

    NB : La petite note au passage : si tu veux faire des programmes crosscompatibles entre les différentes versions de l'iPhone OS, tu peux utiliser des directives de compilation aussi, genre #ifdef __IPHONE_30 (de mémoire, à  vérifier que c'est bien ce nom de define) pour ne compiler des morceaux de codes que quand tu es en SDK 3.0 minimum, tout en te permettant de continuer à  compiler pour les iPhone OS 2.2.1 (mais qui ne pourront juste pas utiliser les nouveautés que tu as rajoutées utilisant MPMediaQuery, bien sûr) si besoin.


    PS : Pour le longTouch, utiliser un Timer ça marche, mais utiliser performSelector:withObject:afterDelay est plus simple. En plus ça t'évite de passer par le userInfo pour passer le sender à  ta méthode ;) Et puis c'est ce qui est précaunisé dans l'exemple Apple (dans la doc Programming Guide sur la gestion des events) quand ils expliquent comment gérer les appuis (touches) longs :P Bon avec un Timer ça marche hein, mais bon.
  • al33eral33er Membre
    20:28 modifié #3
    Merci Ali mais apparemment je ne dois pas utiliser le bon paramètre voici les deux images écrans. J'utilise bien le framework 3.0 (enfin je crois) et le base SDK est en 3.0.

    Il y un autre paramètre à  modifier ?
  • AliGatorAliGator Membre, Modérateur
    20:28 modifié #4
    Sélectionne le "MediaPlayer.framework" dans ton groupe "Frameworks" dans le panel de gauche, et fais un Pomme-I dessus. Regarde alors le chemin d'accès utilisé pour ce framework, et vérifie qu'il est bien spécifié "Relative to current SDK" et pas en chemin absolu.
  • al33eral33er Membre
    20:28 modifié #5
    C'est le cas. Il pointe sur le current sdk.

    Alexandre.
Connectez-vous ou Inscrivez-vous pour répondre.