Principes d'utilisation

ZyrolZyrol Membre
18:45 modifié dans API AppKit #1
Bonjour,

Afin d'être plus autonome par la suite, j'aimerais comprendre comment bien utiliser la doc de Xcode.

Prenons un exemple précis :
je veux couper le son à  une vidéo. J'ai chercher et j'ai trouver ça :
void SetMovieVolume (
    Movie    theMovie,                                         
    short    volume );

en partant du fait que j'ai une vidéo qui s'appelle film1 comment utiliser cette fonction ?
moi je suis parti sur ça, mais évidement ça ne marche pas !

{
SetMovieVolume(film1,0);
}

Réponses

  • muqaddarmuqaddar Administrateur
    18:45 modifié #2
    Et

    [self SetMovieVolume(film1, 0)];

    ?
  • ZyrolZyrol Membre
    18:45 modifié #3
    Négatif.....

    j'ai une erreur de type :
    Controlleur.m:118: error: parse error before '(' token
  • muqaddarmuqaddar Administrateur
    novembre 2004 modifié #4
    En fait, déjà  il faut mettre un float apparamment pour le volume donc 0.0 ou alors cette constante :kNOVolume.

    EDIT :

    Vas voir ce code, il y a setMovieVolume.

    http://developer.apple.com/samplecode/SimpleCocoaMovieQT/listing3.html
  • BruBru Membre
    18:45 modifié #5
    Et ça ?

    [tt]
    {
    SetMovieVolume([film1 QTMovie], 0);
    }[/tt]

    (car je ne sais pas quel est le type de ton "film1" : un NSMovieView, un NSMovie, un QTMovie ?)

    .
  • ZyrolZyrol Membre
    18:45 modifié #6
    Non toujours pas, mais c'est pas non plus indispensable car je peux faire avec la fenêtre quicktime directement.

    Par contre si tu pouvait me dire précisément comment me servir des aides ça m'aiderait pour utiliser plus facilement toutes les fonctions. En fait j'aimerais comprendre la syntaxe utilisé. ça m'évitera d'essayer toutes les syntaxes possibles !

    exemple pour les NSProgressIndicator
    je veux juste que la roue tourne tant que je ne lui ai pas dit de s'arrêter, donc j'utilise :

    - (void)startAnimation:(id)sender

    - (void)stopAnimation:(id)sender

    ça c'est ce qui il y a dans la doc. Mais comment mettre ça dans le code, que faut il changer/ajouter sur cette ligne ?
    c'est ça que je voudrai comprendre.


    merci beaucoup pour ton aide qui est très précieuse depuis le début.
  • ZyrolZyrol Membre
    18:45 modifié #7
    yes !!!! j'ai compris

    il suffit de mettre :
    [nom_objet fonction:sender]

    ça donne ça

    [progress1 startAnimation:sender];

    c'est toujours sur ce principe ?
  • mpergandmpergand Membre
    novembre 2004 modifié #8
    Zyrol, tu ne dis pas ce qu'est film1, un NSMovieView ou un Movie de QuickTime.

    Comme le signifie la doc Apple un NSMovieView est un "wrapper for a quicktime movie"
    cà d un objet qui contient une structure movie et propose différentes méthodes correspondant aux manipulations de base d'un movie. Je te conseillerais d'utiliser la méthode de NSMovieView, si elle existe (c'est le cas pour setVolume), plutôt que le fonction quicktime équivalente, car movieView mémorise l'état du film qu'il gère et ça peut poser des problèmes ( ex: du stop inopérant si le film a été démarrer directement par StartMovie).

    Donc ne faire appel directement à  quicktime que si cette fonction n'existe pas dans NSMovieView. En fait, il vaudrait mieux intervenir sur le movieController, peut-être
    [myMovie movieController];

    Bon, le problème est que si les fonctionnalités de NSMovieView sont insuffisantes pour toi, j'ai peur que tu sois obligé de tout faire "à  la main" ;)
  • ZyrolZyrol Membre
    18:45 modifié #9
    Au départ j'utilisai une NSMovieView, mais le problème : j'avais besoin d'une fonction de chargement pour que la lecture démarre en même temps sur mes 2 fenêtres quicktime, cette fonction (preroll) n'existe apparemment pas avec les NSMovieView et on m'a conseillé d'utiliser le Movie de QuickTime.

    Je pense que je vais faire la fonction mute avec le lecteur intégré. maintenant c'est la fonction du ralenti que je ne comprends pas :

    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 ?
  • mpergandmpergand Membre
    18:45 modifié #10
    Ha ! ça y est , j'ai compris, le paramètre à  passer est du type Fixed, format à  la gomme de quicktime:

    SetMovieRate

    X2Fix
  • ZyrolZyrol Membre
    18:45 modifié #11
    j'imagine qu'il doit y avoir autre chose.... car comme ça, ça ne marche pas... snif...

    {
    Movie movie1=[[movieView1 movie] QTMovie];
    SetMovieRate(movie1, X2Fix( 2.5 ) );
    StartMovie(movie1);
    }
  • mpergandmpergand Membre
    18:45 modifié #12
    ???

    [movieView setRate:0.5];

    ça marche très bien  :D

    Enlève le code batard que je t'ai indiqué et essaye:

    [movieView start:self];
    [movieView setRate:0.5];
Connectez-vous ou Inscrivez-vous pour répondre.