QTMovie always in front ?
Bonjour à tous,
dans mon application j'intègre une QTMovie. Mais le hic c'est qu'elle est toujours au premier plan
Pour vous expliquer la hierarchie de mes vues :
- window.contentView contient "myView1"
- "myView1" la QTMovie
- "myView2" apparait/disparait via un bouton toggle. je fais un simple window.contentView addSubview:myView1 puis myView1 removeFromSuperview.
La QTMovie est toujours au premier plan alors que myView2 devrait l'être à sa place.
Bon évidemment j'ai pensé au fait que la QTMovie était en lecture, j'ai donc tenté avec un pause: puis affichage de myView2, et c'est toujours pareil.
Une solution ? :-\\
Merci,
Louka.
dans mon application j'intègre une QTMovie. Mais le hic c'est qu'elle est toujours au premier plan
Pour vous expliquer la hierarchie de mes vues :
- window.contentView contient "myView1"
- "myView1" la QTMovie
- "myView2" apparait/disparait via un bouton toggle. je fais un simple window.contentView addSubview:myView1 puis myView1 removeFromSuperview.
La QTMovie est toujours au premier plan alors que myView2 devrait l'être à sa place.
Bon évidemment j'ai pensé au fait que la QTMovie était en lecture, j'ai donc tenté avec un pause: puis affichage de myView2, et c'est toujours pareil.
Une solution ? :-\\
Merci,
Louka.
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Du coup seule méthode que je vois si tu veux afficher une vue à la place de ta QTView, c'est de masquer ta QTView (hidden = YES). Et si tu veux qu'une partie de ta vidéo soit visible quand tu affiches ta NSView par dessus elle, j'ai bien peur que tu ne puisses pas le faire directement (si c'est bien de l'overlay utilisé par QTView, parce que sinon c'est p'tet possible) et que tu sois obligé de passer par une astuce genre "mise en pause de ta QTMovie + capture du contenu de ta QTView à l'instant T + masquage de ta QTView + la remplacer par une NSView contenant ladite capture"... mouais...
Bon je met des réserves, j'ai rien testé et pas validé que ce soit de l'overlay ce qui explique ta restriction, mais bon, ça m'étonnerait pas qd mm.
En fait, le hidden=YES est une bonne solution vu que j'ai 2 vues qui devront passer par dessus la movieView, et qui prennent la taille de la contentView. Le seul problème c'est que en mouseOver je veux afficher les controls du genre pause/play, mais personnalisés.. comme QuickTime en fullscreen ou iTunes lui-même lorsqu'on lit une vidéo. Et vu que la vidéo est toujours en lecture à ce moment là dans ces 2 logiciels, voilà pourquoi la capture de l'image me paraà®t bizarre. il doit bien y avoir une technique.
Mais c'est surtout parce que je savais pas ce que tu voulais faire, mettre des UIViews qui servent de contrôles personnalisés par dessus la vidéo en cours de lecture, ou si tu voulais remplacer ta QTView par une autre NSView pendant un temps (genre pour afficher un descriptif de la vidéo à la place de ladite vidéo pendant un temps, puis remettre la vidéo à la place après...), ou si tes NSViews devaient être à cheval sur ta QTView et à côté... bref je pouvais pas deviner :P
Tu as essayé de mettre tes NSViews en subviews de ta QTView plutôt ?
Ou sinon de créer une NSWindow frameless/borderless de type Bezel pour contenir des contrôles ? A mon avis c'est l'une ou l'autre de ces techniques qui est utilisée.
L'idée d'une window frameless/borderless c'est super chiant au niveau du behavior ::)
Par contre je viens de trouver une option dans IB sur QTMovieView :
C'est déjà une bonne piste pour implémenter mon hover avec des controls personalisés.
Après il me restera plus qu'à mettre pause lorsque la recherche doit passer au premier plan
J'ai donc tenté le addSubview dans la QTMovieView .. et rien.
Edit : Il semblerait en effet que la solution soit de faire une fenêtre pour les controls persos... le truc super chiant quoi -.-