Probleme avec FrameWork MEDIAPLAYER
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.
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.
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
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.
Il y un autre paramètre à modifier ?
Alexandre.