Bases et principes, Help !!!!
Zyrol
Membre
Bonjour,
J'ai quelques questions précises concernant le développement sous Xcode. Si vous pouviez me répondre directement, sans me renvoyer sur des liens ce serait super, car j'aimerai des réponses d'utilisateur et en français !
Je cherche à contrôler une NSMovieView (basique dans un premier temps), Pour cela j'ai crée sous IB : la fentre NSMovieView, 2 boutons Lecture et stop, j'ai lier les outlets et actions aux éléments de l'interface...
Bref je me suis donc retrouvé dans Xcode une fois terminé la phase de IB.
Maintenant je me retrouve avec un .h comme ceci :
/* Controleur */
#import <Cocoa/Cocoa.h>
@interface Controleur : NSObject
{
IBOutlet id Bt_lecture;
IBOutlet id Bt_Stop;
}
- (IBAction)lecture:(id)sender;
- (IBAction)stop:(id)sender;
@end
Et un .m comme cela :
#import "Controleur.h"
@implementation Controleur
- (IBAction)lecture:(id)sender
{
}
- (IBAction)stop:(id)sender
{
}
@end
J'ai bien compris qu'il faut implementer dans le .h mais quelle bibliothèque inclure ? ou les déclarer ? comment utiliser les méthodes de la classe NSmovieView ?
Je viens du "monde" Delphi PC ou tout se faisait tout seul, et j'avoue avoir pris de mauvaise habitude !!! Si quelqu'un pouvait m'aiguiller dans mes premiers pas pour que je comprenne le principe ce serait sympa.
Merci beaucoup.
J'ai quelques questions précises concernant le développement sous Xcode. Si vous pouviez me répondre directement, sans me renvoyer sur des liens ce serait super, car j'aimerai des réponses d'utilisateur et en français !
Je cherche à contrôler une NSMovieView (basique dans un premier temps), Pour cela j'ai crée sous IB : la fentre NSMovieView, 2 boutons Lecture et stop, j'ai lier les outlets et actions aux éléments de l'interface...
Bref je me suis donc retrouvé dans Xcode une fois terminé la phase de IB.
Maintenant je me retrouve avec un .h comme ceci :
/* Controleur */
#import <Cocoa/Cocoa.h>
@interface Controleur : NSObject
{
IBOutlet id Bt_lecture;
IBOutlet id Bt_Stop;
}
- (IBAction)lecture:(id)sender;
- (IBAction)stop:(id)sender;
@end
Et un .m comme cela :
#import "Controleur.h"
@implementation Controleur
- (IBAction)lecture:(id)sender
{
}
- (IBAction)stop:(id)sender
{
}
@end
J'ai bien compris qu'il faut implementer dans le .h mais quelle bibliothèque inclure ? ou les déclarer ? comment utiliser les méthodes de la classe NSmovieView ?
Je viens du "monde" Delphi PC ou tout se faisait tout seul, et j'avoue avoir pris de mauvaise habitude !!! Si quelqu'un pouvait m'aiguiller dans mes premiers pas pour que je comprenne le principe ce serait sympa.
Merci beaucoup.
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Tient j'ai piqué ces infos sur PO, ça ne peut que t'aider. Tu n'as plus qu'à adapter tes noms d'outlet et movieView.
Le tutoriel, très court, et en Français est là :
http://www.projectomega.org/article.php?lg=fr&php=oreilly_cocoa18&p=1
il me reste une zone de flou :
je cherche à faire un logiciel de double-ecran pour un usage sportif. il faut donc que je place 2 NSMovie View dans une fenêtre.
J'en ai placé une, je la contrôle avec des boutons : pas de problème.
mais j'aimerais pouvoir la nommer, de telle sorte à ce que je puisse en placer une autre avec un nom diffèrent pour les contrôler ensuite avec leur nom.
Toujours l'habitude de Delphi ou ça se passer à peu près comme ça. Mais là je n'arrive pas à créer de nom pour les différencier.
Une piste ?
Je pars sur ça.....
Mais là : je réussi à ouvrir une video dans la premiere fenetre, mais pas dans la seconde.
Une idée ?
Il te faut 2 outlets movieView. A toi d'indiquer dans quel outlet charger ta video et quelle video il doit lire toujours grâce à son outlet.
Ex :
[movieView1 setMovie:movie1];
[movieView2 setMovie:movie2];
movieView1 étant l'outlet 1 et movie1 sa vidéo et pareil pour le 2
J'ai crée un bouton qui permet de lancer les lecteurs en même temps, voici à quoi ressemble le code de ce bouton :
{
[movieView1 start:self];
[movieView2 start:self];
}
Le problème c'est que la vidéo 2 se mets en marche avec un décalage par rapport à la première. Logique vu que le start est d'abord effectué sur movieView1.
Comment parer à ce problème ? comment lancer les 2 vidéos en même temps ? peut on les charger au préalable pour gagner du temps ?
Merci de vos réponses.
Si ça marche toujours pas, rajouter:
Après, j'sais plus ???
tout d'abord, merci pour ton aide.
Mais là , j'avoue ne pas comprendre le code en particulier les premieres lignes (Movie movie1....)
Peut tu m'expliquer un peu plus en détail ? J'ai vu la fonction Preroll (qui est bien une fonction de chargement), donc je comprend bien le pricipe de chargement avant la lecture, mais pour adapter ton code au mien il faut que je le comprenne.
Merci d'avance.
ben à la place de :
[movieView1 start:self];
[movieView2 start:self];
tu mets mon bout de code
Movie movie1=[[movieView1 movie] QTMovie]; permet de récupérer la structure Movie et d'appeler directement les méthodes quickTime sans passer pas NSMovieView donc...
ça marche. il y a encore un leger decalage mais je pense qu'il est de l'ordre de quelques milliemes....
Par contre les boutons de pause ne marchent plus, j'avais mis un bouton de pause comun, et il ne fonctionne plus : le code etait :
[movieView1 stop:self];
[movieView2 stop:self];
normalement ça devrait être independant, non ?
Movie movie1=[[movieView1 movie] QTMovie];
Movie movie2=[[movieView2 movie] QTMovie];
avant les mises en pauses et me passer des MovieView.
La pause est declenché par stopMovie(movie1)
Bon je crois que je vais ouvrir un autre sujet car celui là commence à ne plus être dans les "Bases et principes"
En tout cas merci beaucoup
essaye:
StopMovie(movie1);
StopMovie(movie2);
[edit]
ok, tu as trouvé
néanmoins, c'est un peu génant, le movieView est un peu perdu, donc il vaudrait mieux faire alors:
[movieView1 start:self];
et
[movieView1 stop:self];
je me sers pour cela de la fonction setRate(). J'arrive à accélérer la vidéo sans problème, à remonter en arrière, mais impossible de la ralentir, c'est le comble !
le flottant en paramètre est défini à 1 pour une vitesse normale, supérieur à 1 ça accélère, inférieur à 0 ça va dans l'autre sens, donc logiquement entre 0 et 1 ça ralentit, mais ça ne fait rien !!
une idée ?