cs_satellite34
Messages postés688Date d'inscriptionmercredi 6 avril 2005StatutMembreDernière intervention 2 juin 2006
-
2 août 2005 à 21:51
cs_satellite34
Messages postés688Date d'inscriptionmercredi 6 avril 2005StatutMembreDernière intervention 2 juin 2006
-
7 août 2005 à 04:09
salut!
petite question a 10 piastres:
je veux lire un avis avec la librairie wxWIDGETS et sa fonction wxMediaCtrl.
Quelqu' un pourrai - t-il me donner la marche a suivre???
cs_satellite34
Messages postés688Date d'inscriptionmercredi 6 avril 2005StatutMembreDernière intervention 2 juin 20061 7 août 2005 à 04:09
C'est bon, j' ai réussi tt comptes fait a bien me débrouiller;
voila le code, par contre , il ne lit que les wmv, je sais pas trop pkoi mais je me doute qui a une story de codecs la dessous,
wxFileDialog fd(OpenFileDialog);
fd.SetWildcard("Fichiers Vidéo|*.avi;*.mpeg;*.mpg*;*.mov*;*.wmv*"); //détermine quels fichiers doivent etre vus
fd.SetMessage(_("Ouvrir un fichier vidéo")); //titre de la fenetre
if (fd.ShowModal()==wxID_OK) //si je clike sur ouvrir,
{
m_mediactrl = new wxMediaCtrl();
m_mediactrl->Create(this, ID_MEDIA, fd.GetPath(), wxPoint(20, 20));
if(!m_mediactrl->Load(fd.GetPath())) //c'est ca qui ne marche pas!
wxMessageBox(wxT("Couldn't load file!"));
if(!m_mediactrl->Play())
wxMessageBox(wxT("Couldn't play movie!"));
void SatAviPlayerFrm::Mnuouvrir1004Click(wxCommandEvent& event)
{
wxFileDialog fd(WxOpenFileDialog);
fd.SetWildcard("*.avi;*.mpeg;*.mpg*;*.mov*;"); //détermine quels fichiers doivent etre vus
fd.SetMessage(_("Ouvrir un fichier vidéo")); //titre de la fenetre
if (fd.ShowModal()= =wxID_OK) //si je clike sur ouvrir,
{
NomFichier = new wxFileName(fd.GetPath()); //pointeur NomFichier sur wxFileName pour le manipuler
chemin = NomFichier->GetFullPath(); //donne une valeur au pointeur *chemin;(cf mp3playrfrm.h)
OnStream(event);
}return;
}
void SatAviPlayerFrm::OnStream(wxCommandEvent& event)
{
f=fopen (chemin, "rb"); //j' ouvre le fichier
if (!f){wxString msg;
msg.Printf( _T("fichier non ouvert!"));
wxMessageBox(msg, _T("Infos"), wxOK | wxICON_INFORMATION, this);return;}//si ya pas de fichier, error!
fseek(f, 0, SEEK_END);
longueurf = ftell(f); //logueur du fichier en bits
fseek(f, 0, SEEK_SET);
data = (char *)malloc(longueurf); //data est alloué a un espace mémoire
fread(data, longueurf, 1, f); //read...
fclose(f); //tue
OnPlay(event);
}
voila, avec
void SatAviPlayerFrm::OnPlay(wxCommandEvent& event)
{
m_mediactrl = new wxMediaCtrl();
m_mediactrl->Load(chemin);
m_mediactrl->Play();
}
pasq d'erreur de compilo maispas de lecture.
je me doute bien que ca ne peut pas marcher mais je n'arrive pas a appeler la fonction
wxMediaCtrl::Create
m_mediactrl->Load(chemin); //c'est ca qui ne marche pas!
if(m_mediactrl->Load(chemin)==false){wxString msg;
msg.Printf( _T("Load n' a pas marché"));
wxMessageBox(msg, _T("Erreur"), wxOK | wxICON_EXCLAMATION, this);return;}
m_mediactrl->Play();
if(m_mediactrl->Play()==false){wxString msg;
msg.Printf( _T("Play n' a pas marché"));
wxMessageBox(msg, _T("Erreur"), wxOK | wxICON_EXCLAMATION, this);return;}
}
et je n' arrive vraiment pas a appeller la fonction create!
cs_satellite34
Messages postés688Date d'inscriptionmercredi 6 avril 2005StatutMembreDernière intervention 2 juin 20061 3 août 2005 à 22:40
yo!
bon, je viens de m' y remettre et j' arrive désormais a appeller Create, mais tjrs pareil, ca s'arrete au Load du fichier.J' aimerai vraiment si qqun pourrait m' EXPLIQUER le fonctionnement de wxMediaCtrl avec les fichiers vidéos ( pas de morceaux de codes seuls s' il vous plait, ca ne sert pas beaucoup a comprendre le systeme), car je programme dans une logique pédagogique et non de performance.
void SatAviPlayerFrm::MnuouvrirClick(wxCommandEvent& event)
{
wxFileDialog fd(OpenFileDialog);
fd.SetWildcard("*.avi;*.mpeg;*.mpg*;*.mov*;"); //détermine quels fichiers doivent etre vus
fd.SetMessage(_("Ouvrir un fichier vidéo")); //titre de la fenetre
if (fd.ShowModal()==wxID_OK) //si je clike sur ouvrir,
{
NomFichier = new wxFileName(fd.GetPath()); //pointeur NomFichier sur wxFileName pour le manipuler
chemin = NomFichier->GetFullPath(); //donne une valeur au pointeur *chemin;(cf mp3playrfrm.h)
OnStream(event);
}return;
}
void SatAviPlayerFrm::OnStream(wxCommandEvent& event)
{
free(data);
f=fopen (chemin, "rb"); //j' ouvre le fichier
if (!f){wxString msg;
msg.Printf( _T("fichier non ouvert!"));
wxMessageBox(msg, _T("Infos"), wxOK | wxICON_INFORMATION, this);return;}//si ya pas de fichier, error!
fseek(f, 0, SEEK_END);
longueurf = ftell(f); //logueur du fichier en bits
fseek(f, 0, SEEK_SET);
data = (char *)malloc(longueurf); //data est alloué a un espace mémoire
fread(data, longueurf, 1, f); //read...
fclose(f); //tue
OnPlay(event);
}
m_mediactrl->Load(chemin); //c'est ca qui ne marche pas!
if(m_mediactrl->Load(chemin)==false){wxString msg;
msg.Printf( _T("Load n' a pas marché"));
wxMessageBox(msg, _T("Erreur"), wxOK | wxICON_EXCLAMATION, this);return;}
m_mediactrl->Play();
if(m_mediactrl->Play()==false){wxString msg;
msg.Printf( _T("Play n' a pas marché"));
wxMessageBox(msg, _T("Erreur"), wxOK | wxICON_EXCLAMATION, this);return;}
}