cs_satellite34
Messages postés
688
Date d'inscription
mercredi 6 avril 2005
Statut
Membre
Dernière intervention
2 juin 2006
1
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.
/*////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
* 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