Bonjour à tous
Est qu'en chargeant un fichier vidéo wmv dans le MediaPlayer, il va le lire
et si oui y a-t-il un moyen comme pour un avi avec avifileinfo pour récupérer la hauteur et la largeur de la vidéo
Merci d'avance pour votre aide
Bonjour à tous
Est qu'en chargeant un fichier vidéo wmv dans le MediaPlayer, il va le lire
et si oui y a-t-il un moyen comme pour un avi avec avifileinfo pour récupérer la hauteur et la largeur de la vidéo
Merci d'avance pour votre aide
personnellement j ai un message d erreur , violation d acces à l adresse 733aa5c7b dans le module avifil32.dll . lecture de l adresse 00000000 .
Parcontre peut on lire un asx avec tmediaplayer ?
Salut kurul1
A tu le codec pour lire ce format? , un lien sur le sujet
Pour la lecture c'est bon, ca lit mais maintenant mon problème c'est de pouvoir obtenir les dimensions de la vidéo comme je pouvais le faire sur un avi avec avifileInfo.
Toujours sur le meme site un lien sur les astuces
Merci à toi mais cela ne répond pas à ma question
Moi c'est par programme que je veux le faire, pas directement dans le MediaPlayer.
Je dois lire des vidéos dans un Panel bien préci et je cherche à centrer ma vidéo dans le Panel.
Avec un avi, je le fais facilement en récupérant les infos sur la vidéo grâce à AviFileInfo, je souhaiterais faire de même avec une vidéo wmv car les vidéos qui vont être utilisés dans mon soft pourrons aussi bien être des avi que des wmv.
excuse-moi mais est ce que tu lis exclusivement des wmv ?
pourquoi ne pas utiliser un tccpbrowser et faire appel à une page html preformatée ?
En fait, mon application affiche à l'écran différents Panels et lorsque je clique sur un des Panel, la vidéo doit se lire dans celui-ci. Jusqu'à présent, j'utilise un TMediaPlayer pour lequel je défini le display dans le Panel et ensuite Grace à AvifileInfo (pour les vidéos avi), je récupère la hauteur et la largeur de la vidéo pour pouvoir ensuite calculer les dimensions du Display du Panel pour que cette vidéo tienne sans déformation dans le Panel.
Si tu me certifie que je peux redimensionner ma vidéo avec un tccpbrowser, je peux faire ceci, je suis prenneur.
Je n'ai jamais utilisé ce composant donc je ne sais pas comment faire.
comme j avais rien à faire , je t ai fait çà avec deux exemples differents
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 //--------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop #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::Button1Click(TObject *Sender) { AnsiString page ; AnsiString videoselect ="video1.wmv" ; // ca peut etre une photo page="<body bgcolor=\"000000\"><center><img dynsrc=\"" ; // !! 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(),"video.htm"); WideString WEB = lapageshow; CppWebBrowser1->Navigate(WEB); } //--------------------------------------------------------------------------- void __fastcall TForm1::stopClick(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(),"video.htm"); WideString WEB = lapageshow; CppWebBrowser1->Navigate(WEB); } //--------------------------------------------------------------------------- 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(),"video.htm"); WideString WEB = lapageshow; CppWebBrowser1->Navigate(WEB); } //--------------------------------------------------------------------------- void __fastcall TForm1::Button2Click(TObject *Sender) { AnsiString page ; AnsiString videoselect ="video1.wmv" ; // ca peut etre une photo page="<body bgcolor=\"000000\"><center>"; page=page+"<object id=\"MediaPlayer\""; page=page+"classid=\"clsid:6BF52A52-394A-11D3-B153-00C04F79FAA6\""; page=page+"type=\"application/x-oleobject\""; page=page+"standby=\"Loading Microsoft Windows Media Player components...\""; page=page+"width=\""; int largeur = CppWebBrowser1->Width *85/100; page=page+largeur ; page=page+"\" align=\"absmiddle\">"; page=page+"<param name=\"enabled\" value=\"true\" />"; page=page+"<param name=\"url\" value=\""; page=page+videoselect; page=page+"\" />"; page=page+"<param name=\"autostart\" value=\"true\" /> </object>"; 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(),"video.htm"); WideString WEB = lapageshow; CppWebBrowser1->Navigate(WEB); } //---------------------------------------------------------------------------
l exemple sous c++ builder 6 uploadé sur rapidshare
http://rapidshare.com/files/62791384...deo_2.rar.html
juste à rajouter dans le dossier un fichier video nommé video1.wmv
voilà
comme le sujet m interessait , j ai un peu bossé dessus et j ai realisé ceci , çà fonctionne avec differents formats de video , musique ou image
( pour la musique , faudrait filtrer l extension pour empecher de charger un dynsrc )
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 //--------------------------------------------------------------------------- #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"); // 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 () { if ( CheckBox1->Checked == true ) { AnsiString page ; AnsiString videoselect = ComboBox1->Items->Strings[ComboBox1->ItemIndex]; page="<body bgcolor=\"000000\"><center>"; page=page+"<object id=\"MediaPlayer\""; page=page+"classid=\"clsid:6BF52A52-394A-11D3-B153-00C04F79FAA6\""; page=page+"type=\"application/x-oleobject\""; page=page+"standby=\"Loading Microsoft Windows Media Player components...\""; page=page+"width=\""; int largeur = CppWebBrowser1->Width *90/100; page=page+largeur ; page=page+"\" align=\"absmiddle\">"; page=page+"<param name=\"enabled\" value=\"true\" />"; page=page+"<param name=\"url\" value=\"videos\\"; page=page+videoselect; page=page+"\" />"; page=page+"<param name=\"autostart\" value=\"true\" /> </object>"; 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); } else { 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); } //--------------------------------------------------------------------------- void __fastcall TForm1::playDblClick(TObject *Sender) { Lecture(); } //--------------------------------------------------------------------------- void __fastcall TForm1::stopDblClick(TObject *Sender) { Stopper(); } //--------------------------------------------------------------------------- void __fastcall TForm1::stopClick(TObject *Sender) { Stopper(); } //--------------------------------------------------------------------------- void __fastcall TForm1::playClick(TObject *Sender) { Lecture(); } //---------------------------------------------------------------------------
le lien pour telecharger le projet
http://rapidshare.com/files/62957716...deo_6.rar.html
Salut cedni,
Je trouve vraiment pas mal du tout ce que tu as réalisé !
Ca va surement me donner quelques exemples pour de prochains programmes
Bonne continuation
Partager