begin process at 2012 05 30 12:42:58
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Multimédia

 > 

[wxWIDGETS] wxMediaCtrl + avi


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

[wxWIDGETS] wxMediaCtrl + avi

mardi 2 août 2005 à 21:51:49 | [wxWIDGETS] wxMediaCtrl + avi

satellite34

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???

merci bocoup
++
mardi 2 août 2005 à 22:49:22 | Re : [wxWIDGETS] wxMediaCtrl + avi

satellite34

bon ok, un peu de code :

/*////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 * Mnuouvrir1004Click
 *////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 
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;
}

/*/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
*STREAM
*///////////////////////////////////////////////////////////////////////////////////////////////////////////////////

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);
}

/*////////////////////////////////////////////////////////////////////////////////////////////////////////////////
*PLAY
*/////////////////////////////////////////////////////////////////////////////////////////////////////////////////

void SatAviPlayerFrm::OnPlay(wxCommandEvent& event)
{
   m_mediactrl = new wxMediaCtrl();
   m_mediactrl->Load(chemin);
   m_mediactrl->Play();
}

/*/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 * Mnuquitter1005Click
 *//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 
void SatAviPlayerFrm::Mnuquitter1005Click(wxCommandEvent& event)
{
 Destroy();
}

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

bool Create( wxWindow* parent, const wxString& fileName = wxT(""), wxWindowID id, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = 0, const wxString& szBackend = wxT(""), const wxValidator&validator = wxDefaultValidator, const wxString& name = wxPanelNameStr )

et ben ca j' arrive pas a le mettre en oeuvre!!!!

une idée?????????


mercredi 3 août 2005 à 09:19:21 | Re : [wxWIDGETS] wxMediaCtrl + avi

fredcl

Bonjour,

Dans les exemples de wxWidgets il est founi une source pour le wxMedriaCtrl à cet endroit \Examples\wx\mediaplayer

Je pense que celà répondra à ta question.

Cordialement

FredCL

mercredi 3 août 2005 à 10:28:34 | Re : [wxWIDGETS] wxMediaCtrl + avi

satellite34

non pas du tout! j'ai déja regardé cette source mais elle ne m'apporte rien! en +, elle ne lit pas les vidéos !

et pis franchement j' y comprends rien a leurs sources    (trop orientées objet).

moi je veux des explications , pas du code!

merci ++
mercredi 3 août 2005 à 11:57:51 | Re : [wxWIDGETS] wxMediaCtrl + avi

satellite34

voila ou l'erreur se situe et j'arrive pas a envoyer la fonction create pour utiliser un BACKEND direct show!!!

void SatAviPlayerFrm::OnPlay(wxCommandEvent& event)
{
   m_mediactrl = new wxMediaCtrl();
  
   if(!m_mediactrl){wxString msg;
   msg.Printf( _T("m_mediactrl pas initialisé"));
   wxMessageBox(msg, _T("Erreur"), wxOK | wxICON_EXCLAMATION, this);return;}
  
   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!

tekno, tekno
mercredi 3 août 2005 à 22:40:38 | Re : [wxWIDGETS] wxMediaCtrl + avi

satellite34

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.

/*////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 * MnuouvrirClick
 *////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 
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;
}

/*/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
*STREAM
*///////////////////////////////////////////////////////////////////////////////////////////////////////////////////

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);
}

/*////////////////////////////////////////////////////////////////////////////////////////////////////////////////
*PLAY
*/////////////////////////////////////////////////////////////////////////////////////////////////////////////////

void SatAviPlayerFrm::OnPlay(wxCommandEvent& event)
{
   m_mediactrl = new wxMediaCtrl();
   m_mediactrl->Create(visuWnd, ID_MEDIA, wxMEDIABACKEND_DIRECTSHOW);
  
   if(!m_mediactrl){wxString msg;
   msg.Printf( _T("m_mediactrl pas initialisé"));
   wxMessageBox(msg, _T("Erreur"), wxOK | wxICON_EXCLAMATION, this);return;}
  
   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;}
}

allé merci bocoup à tous

tekno, tekno

dimanche 7 août 2005 à 04:09:02 | Re : [wxWIDGETS] wxMediaCtrl + avi

satellite34

Réponse acceptée !

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,

/*////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 * MnuouvrirClick
 *////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 
void SatAviPlayerFrm::MnuouvrirClick(wxCommandEvent& event)
{
    
 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!"));
   
    resetmedia();
    }
}

/*/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
*reset
/*////////////////////////////////////////////////////////////////////////////////////////////////////////////////8

void SatAviPlayerFrm::resetmedia()
{
    m_basestatus = wxString::Format(_T("Size(x,y):%i,%i ")
                                    _T("Length(Seconds):%u Speed:%1.1fx"),
    m_mediactrl->GetBestSize().x,
    m_mediactrl->GetBestSize().y,
    (unsigned)((m_mediactrl->Length() / 1000)),
    m_mediactrl->GetPlaybackRate()
    );
    StatusBar->SetStatusText(m_basestatus);
}
/*////////////////////////////////////////////////////////////////////////////////////////////////////////////////
*PLAY
*/////////////////////////////////////////////////////////////////////////////////////////////////////////////////

void SatAviPlayerFrm::OnPlay(wxCommandEvent& event)
{
    
    
   if(!m_mediactrl->Play())
    wxMessageBox(wxT("Couldn't play movie!"));
}


Recherche entreprise développement à Montpellier pour BTS Informatique de Gestion en alternance............



Cette discussion est classée dans : avi, wxwidgets, wxmediactrl


Répondre à ce message

Sujets en rapport avec ce message

Codecs??-->wxMediaCtrl_.avi; [ par satellite34 ] Bonsoir,J' ai un p'tit probleme concernant la lecture de fichiers avi avec mon lecteur http://www.cppfrance.com/code.aspx?ID=33112Je programme avec wx mettre un wxImage en ressource ? -wxWidgets- [ par georgeduke ] Bonjour !! J'ai développé un petit programme avec devC++/wxWidgets qui affiche un fichier bmp pour embellir l'interface. J'aimerais savoir comment pr Créer un AVI a partir d'un programme [ par supergrey ] Salut, je suis tombé récemment sur une source permettant de créer une video AVI a partir d'image BMP ( http://www.cppfrance.com/code.aspx?id=28542 ) e recuperer le son d'un fichier .avi [ par delfare ] bonjours, je cree un exporteur avi en c++ qui exporte le bmp et le jpg de chaque frame d'un fichier .avi(grace a plusieurs sources d'ici que j'ai comb wxWIDGETS-->Une bonne librairie??.avis des développeurs : [ par satellite34 ] Bonjour,Je développe depuis quelques temps avec la librairie wxWIDGETS car elle semble ultra portable et ergonomique-->les mots clés sont trés explici wxWIDGETS ----> mon aplli sous mac??? [ par satellite34 ] Bonjour,je développe actuellement un client ftp avec wxDevCpp sous windows;Le truc, c'est que dans l' absolu ce programme est voué a tourner sous mac WxWidgets [ par boutonnet ] Bonjour a tous, je dois développer une application sous linux en utilisant les WxWidgets. Je me documente depuis deux jours sur ce GUI, mais une quest WXWIDGETS et linux [ par boutonnet ] Bonjour, je galère a essayer de faire fonctionner les wxwidgets sur ma mandrake avec eclipse. autant dire que je n'y arrive pas, j'ai suivi a la lettr Séparer le HEADER d'un AVI et la video ? ? ? [ par supergrey ] Salut, je voudrais savoir comment séparer un avi pour avoir d'un coté l'entete et de l'autre les données video.Le but est de pouvoir après splitter le wxWIDGETS--->portage linux [ par satellite34 ] bonjour,J' arrive presque a la fin de la version Alpha d' un client ftp (manque le drag & drop de fichier et 2/3 bricoles), je voudrai, utilisant wxWI


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,044 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales