si tu utilise que des .avi pourquoi en pas utiliser le composant TAnimate ?
c'est simple et y a l'aide ! et pour toi ça boucle
si tu utilise que des .avi pourquoi en pas utiliser le composant TAnimate ?
c'est simple et y a l'aide ! et pour toi ça boucle
Je le connais pas ce composant, je vais regarder
salut
t as testé l activex vlc ou windows media player ?
ca fonctionne tranquille avec bcb6
oui cela fonctionne mais pas pour lire en boucle
comme tu peux le voir dans le post plus haut, j'ai essayé différentes méthodes pour faire lire une vidéo en boucle et rien y fait en C++. En Delphi j'y suis arrivé, mais s'il faut redévelopper toute mon application en Delphi, je ne pourrais pas faute de temps.
tes videos pesent combien en moyenne et quel genre de resolution utilises tu ?
Et combien veux tu en lire en meme temps ?
Ca vient d un projet que j avais construit
le principe est simple
on liste les medias contenus dans un repertoire "videos"
on les ajoute à un combobox
un bouton play recupere l item du combobox
genere une page html
dont le body contient un <img dynsrc=...chemin...nom...>
on charge cette page locale dans un ccpwebbrowser
et là magique , çà loop mais pas de controls
enfin si on peut imaginer la fonction stop qui chargerait une page vide
En esperant t avoir aidé ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144 //--------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop #include <mshtml.h> #include "Unit1.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma link "SHDocVw_OCX" #pragma resource "*.dfm" TForm1 *Form1; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void __fastcall TForm1::FormCreate(TObject *Sender) { AnsiString page ; page="<body bgcolor=\"000000\">" ; AnsiString lapage ; lapage.sprintf("%s%s",ExtractFilePath(Application->ExeName).c_str(),"video.htm"); Memo1->Clear(); Memo1->Lines->Add(page); Memo1->Lines->SaveToFile(lapage); AnsiString lapageshow ; lapageshow.sprintf("%s%s",ExtractFilePath(Application->ExeName).c_str(),"index.html"); WideString WEB = lapageshow; CppWebBrowser1->Navigate(WEB); TStringList *Extensions = new TStringList; // On construit la liste des extensions Extensions->Add(".wmv"); Extensions->Add(".avi"); Extensions->Add(".mpeg"); Extensions->Add(".mpg"); Extensions->Add(".divx"); Extensions->Add(".asf"); Extensions->Add(".mp3"); Extensions->Add(".jpg"); Extensions->Add(".gif"); // Appel à notre méthode, avec pour liste des fichiers, les items de la ListBox. Search(ExtractFilePath(Application->ExeName), Extensions, ComboBox1->Items); delete Extensions; ComboBox1->ItemIndex=0; } //--------------------------------------------------------------------------- void TForm1::Search(AnsiString FilePath, TStringList * Extensions, TStrings * ListeFichiers) { TSearchRec Infos_fichier; if (!FindFirst(FilePath+"videos/"+"*.*", faAnyFile, Infos_fichier)) do { for (int i = 0 ; i < Extensions->Count ; i++) { if (ExtractFileExt(Infos_fichier.Name).LowerCase() == Extensions->Strings[i].LowerCase()) { ListeFichiers->Add(Infos_fichier.Name); // ListeFichiers->Add(ExpandFileName(Infos_fichier.Name)) ici le nom avec le path } } } while(!FindNext(Infos_fichier)); FindClose(Infos_fichier); } // ---------------------------------------------------------- void TForm1::Lecture () { AnsiString page ; AnsiString videoselect = ComboBox1->Items->Strings[ComboBox1->ItemIndex]; page="<body bgcolor=\"000000\"><center><img dynsrc=\"videos\\" ; // !! le \ pour echapper les guillemets page=page+videoselect ; page=page+"\""; page=page+" start=fileopen " ; // ici à la place de fileopen tu peux mettre onmouseover page=page+" width=\"" ; int largeur = CppWebBrowser1->Width *82/100; page=page+largeur ; page=page+"\" loop=infinite>" ; AnsiString lapage ; lapage.sprintf("%s%s",ExtractFilePath(Application->ExeName).c_str(),"video.htm"); Memo1->Clear(); Memo1->Lines->Add(page); Memo1->Lines->SaveToFile(lapage); AnsiString lapageshow ; lapageshow.sprintf("%s%s",ExtractFilePath(Application->ExeName).c_str(),"index.html"); WideString WEB = lapageshow; CppWebBrowser1->Navigate(WEB); } } //--------------------------------------------------------------------------- void TForm1::Stopper () { AnsiString page ; page="<body bgcolor=\"000000\">" ; AnsiString lapage ; lapage.sprintf("%s%s",ExtractFilePath(Application->ExeName).c_str(),"video.htm"); Memo1->Clear(); Memo1->Lines->Add(page); Memo1->Lines->SaveToFile(lapage); AnsiString lapageshow ; lapageshow.sprintf("%s%s",ExtractFilePath(Application->ExeName).c_str(),"index.html"); WideString WEB = lapageshow; CppWebBrowser1->Navigate(WEB); }
en fait je peux en lire de 3 à 6 voir plus
mais ce que je veux pouvoir faire également, c'est par un clique sur cette vidéo, non pas la stopper, mais sélectionner le conteneur de cette vidéo (Pour moi c'est un Panel), et en cliquant sur un autre, faire l'inversion de ces deux Panel, sans que cela n'arrête la lecture.
Je vais regarder ce que tu m'a envoyé, Merci
en fait j imagine ton projet comme etant composé
d une partie à gauche diffusant de courts extraits d un film
d une partie droite affichant la video entiere dans un mediaplayer
c est çà ?
Mais pk cette histoire d inversion ?
Non c'est pas ca du tout
Mon application est un puzzle
Dans les pièces, il peut y avoir soit des images soit des vidéos. (Un seul type par puzzle, on ne peut pas mélanger Images et Vidéos).
Je veux donc pouvoir dans chaque pièce lire une vidéo en boucle et pouvoir déplacer ces Pièces sans que la lecture s'arrête.
Bien entendu, le nombre de pièces ne sera pas 100 comme un Puzzle classique, on se limite à 6 voir à la limite 9 mais pas plus.
Comme je t'ai dit, lire plusieurs vidéos en même temps, pas de souci avec ce que tu m'avais conseillé, c'est à dire le control ActivX MediaPlayer.
Après j'ai vu qu'il y avait un évènement OnClick sur le composant donc il ne devrait pas y avoir de problème pour le déplacement. (Je ne glisse pas pour déplacer car c'est prévu pour être utilisé sur un écran tactile, donc juste un clic pour sélectionner et un deuxième sur la Pièce ou l'on veut la déplacer).
Le problème reste la lecture en boucle.
Mes vidéos se lisent toutes en même temps mais dès qu'elles arrivent à la fin, elles s'arrêtent, et rien à faire pour affecter correctement le mode de lecture. En C++ cela ne veut pas alors qu'en Delphi, cela se fait simplement.
Tiens je t ai bricolé çà
ca peut etre ameliorer aisement
comme par exemple ajouter un replacement des boutons qui suit les videos
ou idealement d utiliser du flash dans les browser pour mieux remplir chaque panel .
http://rapidshare.com/files/109122626/puzzle.rar.html
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225 //--------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop #include "Unit1.h" int hauteur=250;int largeur=250; int i; int Top_premier; int Left_premier; int premier; int Top_second; int Left_second; AnsiString test; //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma link "SHDocVw_OCX" #pragma resource "*.dfm" TForm1 *Form1; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- //void TForm1::deplacer() { } //--------------------------------------------------------------------------- void TForm1::change() { switch(premier) { case 1:Panel1->Top=Top_second ; Panel1->Left=Left_second ; break; case 2:Panel2->Top=Top_second ; Panel2->Left=Left_second ; break; case 3:Panel3->Top=Top_second ; Panel3->Left=Left_second ; break; case 4:Panel4->Top=Top_second ; Panel4->Left=Left_second ; break; case 5:Panel5->Top=Top_second ; Panel5->Left=Left_second ; break; case 6:Panel6->Top=Top_second ; Panel6->Left=Left_second ; break; case 7:Panel7->Top=Top_second ; Panel7->Left=Left_second ; break; case 8:Panel8->Top=Top_second ; Panel8->Left=Left_second ; break; case 9:Panel9->Top=Top_second ; Panel9->Left=Left_second ; break; } i=0; } //--------------------------------------------------------------------------- void __fastcall TForm1::FormCreate(TObject *Sender) { Panel1->Left=0; Panel1->Top=0 ; Panel1->Width=largeur; Panel1->Height=hauteur; Panel2->Left=largeur; Panel2->Top=0 ; Panel2->Width=largeur; Panel2->Height=hauteur; Panel3->Left=2*largeur; Panel3->Top=0 ; Panel3->Width=largeur; Panel3->Height=hauteur; Panel4->Left=0; Panel4->Top=hauteur ; Panel4->Width=largeur; Panel4->Height=hauteur; Panel5->Left=largeur; Panel5->Top=hauteur ; Panel5->Width=largeur; Panel5->Height=hauteur; Panel6->Left=2*largeur; Panel6->Top=hauteur ; Panel6->Width=largeur; Panel6->Height=hauteur; Panel7->Left=0; Panel7->Top=2*hauteur ; Panel7->Width=largeur; Panel7->Height=hauteur; Panel8->Left=largeur; Panel8->Top=2*hauteur ; Panel8->Width=largeur; Panel8->Height=hauteur; Panel9->Left=2*largeur; Panel9->Top=2*hauteur ; Panel9->Width=largeur; Panel9->Height=hauteur; Panel10->Left=3*largeur; AnsiString page1 =ExtractFilePath(Application->ExeName).c_str(); page1+="1.htm"; WideString WEB1 = page1; CppWebBrowser1->Navigate(WEB1); AnsiString page2 =ExtractFilePath(Application->ExeName).c_str(); page2+="2.htm"; WideString WEB2 = page2; CppWebBrowser2->Navigate(WEB2); AnsiString page3 =ExtractFilePath(Application->ExeName).c_str(); page3+="3.htm"; WideString WEB3 = page3; CppWebBrowser3->Navigate(WEB3); AnsiString page4 =ExtractFilePath(Application->ExeName).c_str(); page4+="4.htm"; WideString WEB4 = page4; CppWebBrowser4->Navigate(WEB4); AnsiString page5 =ExtractFilePath(Application->ExeName).c_str(); page5+="5.htm"; WideString WEB5 = page5; CppWebBrowser5->Navigate(WEB5); AnsiString page6 =ExtractFilePath(Application->ExeName).c_str(); page6+="6.htm"; WideString WEB6 = page6; CppWebBrowser6->Navigate(WEB6); AnsiString page7 =ExtractFilePath(Application->ExeName).c_str(); page7+="7.htm"; WideString WEB7 = page7; CppWebBrowser7->Navigate(WEB7); AnsiString page8 =ExtractFilePath(Application->ExeName).c_str(); page8+="8.htm"; WideString WEB8 = page8; CppWebBrowser8->Navigate(WEB8); AnsiString page9 =ExtractFilePath(Application->ExeName).c_str(); page9+="9.htm"; WideString WEB9 = page9; CppWebBrowser9->Navigate(WEB9); } //--------------------------------------------------------------------------- void __fastcall TForm1::Panel1Click(TObject *Sender) { i++; if (i==1) { Top_premier=Panel1->Top; Left_premier=Panel1->Left; premier=1; } if (i==2) {Left_second=Panel1->Left; Top_second=Panel1->Top; change();Panel1->Top=Top_premier ; Panel1->Left=Left_premier ; } } //--------------------------------------------------------------------------- void __fastcall TForm1::Panel2Click(TObject *Sender) { i++; if (i==1) { Top_premier=Panel2->Top; Left_premier=Panel2->Left; premier=2;} if (i==2) {Left_second=Panel2->Left; Top_second=Panel2->Top; change();Panel2->Top=Top_premier ; Panel2->Left=Left_premier ; } } //--------------------------------------------------------------------------- void __fastcall TForm1::Panel3Click(TObject *Sender) { i++; if (i==1) { Top_premier=Panel3->Top; Left_premier=Panel3->Left; premier=3; } if (i==2) {Left_second=Panel3->Left; Top_second=Panel3->Top; change(); Panel3->Top=Top_premier ; Panel3->Left=Left_premier ; } } //--------------------------------------------------------------------------- void __fastcall TForm1::Panel4Click(TObject *Sender) { i++; if (i==1) { Top_premier=Panel4->Top; Left_premier=Panel4->Left; premier=4 ; } if (i==2) {Left_second=Panel4->Left; Top_second=Panel4->Top; change(); Panel4->Top=Top_premier ; Panel4->Left=Left_premier ; } } //--------------------------------------------------------------------------- void __fastcall TForm1::Panel5Click(TObject *Sender) { i++; if (i==1) { Top_premier=Panel5->Top; Left_premier=Panel5->Left; premier=5; } if (i==2) {Left_second=Panel5->Left; Top_second=Panel5->Top; change(); Panel5->Top=Top_premier ; Panel5->Left=Left_premier ; } } //--------------------------------------------------------------------------- void __fastcall TForm1::Panel6Click(TObject *Sender) { i++; if (i==1) { Top_premier=Panel6->Top; Left_premier=Panel6->Left; premier=6; } if (i==2) {Left_second=Panel6->Left; Top_second=Panel6->Top; change();Panel6->Top=Top_premier ; Panel6->Left=Left_premier ; } } //--------------------------------------------------------------------------- void __fastcall TForm1::Panel7Click(TObject *Sender) { i++; if (i==1) { Top_premier=Panel7->Top; Left_premier=Panel7->Left; premier=7; } if (i==2) {Left_second=Panel7->Left; Top_second=Panel7->Top; change();Panel7->Top=Top_premier ; Panel7->Left=Left_premier ; } } //--------------------------------------------------------------------------- void __fastcall TForm1::Panel8Click(TObject *Sender) { i++; if (i==1) { Top_premier=Panel8->Top; Left_premier=Panel8->Left; premier=8; } if (i==2) {Left_second=Panel8->Left; Top_second=Panel8->Top; change();Panel8->Top=Top_premier ; Panel8->Left=Left_premier ; } } //--------------------------------------------------------------------------- void __fastcall TForm1::Panel9Click(TObject *Sender) { i++; if (i==1) { Top_premier=Panel9->Top; Left_premier=Panel9->Left; premier=9; } if (i==2) {Left_second=Panel9->Left; Top_second=Panel9->Top; change();Panel9->Top=Top_premier ; Panel9->Left=Left_premier ; } } //--------------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { i++; if (i==1) { Top_premier=Panel1->Top; Left_premier=Panel1->Left; premier=1; } if (i==2) {Left_second=Panel1->Left; Top_second=Panel1->Top; change();Panel1->Top=Top_premier ; Panel1->Left=Left_premier ; } } //--------------------------------------------------------------------------- void __fastcall TForm1::Button2Click(TObject *Sender) { i++; if (i==1) { Top_premier=Panel2->Top; Left_premier=Panel2->Left; premier=2;} if (i==2) {Left_second=Panel2->Left; Top_second=Panel2->Top; change();Panel2->Top=Top_premier ; Panel2->Left=Left_premier ; } } //--------------------------------------------------------------------------- void __fastcall TForm1::Button3Click(TObject *Sender) { i++; if (i==1) { Top_premier=Panel3->Top; Left_premier=Panel3->Left; premier=3; } if (i==2) {Left_second=Panel3->Left; Top_second=Panel3->Top; change(); Panel3->Top=Top_premier ; Panel3->Left=Left_premier ; } } //--------------------------------------------------------------------------- void __fastcall TForm1::Button4Click(TObject *Sender) { i++; if (i==1) { Top_premier=Panel4->Top; Left_premier=Panel4->Left; premier=4 ; } if (i==2) {Left_second=Panel4->Left; Top_second=Panel4->Top; change(); Panel4->Top=Top_premier ; Panel4->Left=Left_premier ; } } //--------------------------------------------------------------------------- void __fastcall TForm1::Button5Click(TObject *Sender) { i++; if (i==1) { Top_premier=Panel5->Top; Left_premier=Panel5->Left; premier=5; } if (i==2) {Left_second=Panel5->Left; Top_second=Panel5->Top; change(); Panel5->Top=Top_premier ; Panel5->Left=Left_premier ; } } //--------------------------------------------------------------------------- void __fastcall TForm1::Button6Click(TObject *Sender) { i++; if (i==1) { Top_premier=Panel6->Top; Left_premier=Panel6->Left; premier=6; } if (i==2) {Left_second=Panel6->Left; Top_second=Panel6->Top; change();Panel6->Top=Top_premier ; Panel6->Left=Left_premier ; } } //--------------------------------------------------------------------------- void __fastcall TForm1::Button7Click(TObject *Sender) { i++; if (i==1) { Top_premier=Panel7->Top; Left_premier=Panel7->Left; premier=7; } if (i==2) {Left_second=Panel7->Left; Top_second=Panel7->Top; change();Panel7->Top=Top_premier ; Panel7->Left=Left_premier ; } } //--------------------------------------------------------------------------- void __fastcall TForm1::Button8Click(TObject *Sender) { i++; if (i==1) { Top_premier=Panel8->Top; Left_premier=Panel8->Left; premier=8; } if (i==2) {Left_second=Panel8->Left; Top_second=Panel8->Top; change();Panel8->Top=Top_premier ; Panel8->Left=Left_premier ; } } //--------------------------------------------------------------------------- void __fastcall TForm1::Button9Click(TObject *Sender) { i++; if (i==1) { Top_premier=Panel9->Top; Left_premier=Panel9->Left; premier=9; } if (i==2) {Left_second=Panel9->Left; Top_second=Panel9->Top; change();Panel9->Top=Top_premier ; Panel9->Left=Left_premier ; } } //--------------------------------------------------------------------------- //---------------------------------------------------------------------------
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75 //--------------------------------------------------------------------------- #ifndef Unit1H #define Unit1H //--------------------------------------------------------------------------- #include <Classes.hpp> #include <Controls.hpp> #include <StdCtrls.hpp> #include <Forms.hpp> #include <ExtCtrls.hpp> #include "SHDocVw_OCX.h" #include <OleCtrls.hpp> //--------------------------------------------------------------------------- class TForm1 : public TForm { __published: // Composants gérés par l'EDI TPanel *Panel1; TPanel *Panel2; TPanel *Panel3; TPanel *Panel4; TPanel *Panel5; TPanel *Panel6; TPanel *Panel7; TPanel *Panel8; TPanel *Panel9; TCppWebBrowser *CppWebBrowser1; TButton *Button1; TButton *Button2; TButton *Button3; TButton *Button4; TPanel *Panel10; TButton *Button5; TButton *Button6; TButton *Button7; TButton *Button8; TButton *Button9; TCppWebBrowser *CppWebBrowser2; TCppWebBrowser *CppWebBrowser3; TCppWebBrowser *CppWebBrowser4; TCppWebBrowser *CppWebBrowser5; TCppWebBrowser *CppWebBrowser6; TCppWebBrowser *CppWebBrowser7; TCppWebBrowser *CppWebBrowser8; TCppWebBrowser *CppWebBrowser9; void __fastcall FormCreate(TObject *Sender); void __fastcall Panel1Click(TObject *Sender); void __fastcall Panel2Click(TObject *Sender); void __fastcall Panel3Click(TObject *Sender); void __fastcall Panel4Click(TObject *Sender); void __fastcall Panel5Click(TObject *Sender); void __fastcall Panel6Click(TObject *Sender); void __fastcall Panel7Click(TObject *Sender); void __fastcall Panel8Click(TObject *Sender); void __fastcall Panel9Click(TObject *Sender); void __fastcall Button1Click(TObject *Sender); void __fastcall Button2Click(TObject *Sender); void __fastcall Button3Click(TObject *Sender); void __fastcall Button4Click(TObject *Sender); void __fastcall Button5Click(TObject *Sender); void __fastcall Button6Click(TObject *Sender); void __fastcall Button7Click(TObject *Sender); void __fastcall Button8Click(TObject *Sender); void __fastcall Button9Click(TObject *Sender); private: // Déclarations de l'utilisateur public: // Déclarations de l'utilisateur __fastcall TForm1(TComponent* Owner); void TForm1::change(); }; //--------------------------------------------------------------------------- extern PACKAGE TForm1 *Form1; //--------------------------------------------------------------------------- #endif
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager