Kacper Kołodziej
Kacper Kołodziej

Reputation: 698

wxWidgets - wxMediaCtrl - video doesn't play

I want to create a simple video player with C++ and wxWidgets. I put wxMediaCtrl and wxFileDialog controls and created this code for button click event:

wxFileDialog * fopen = new wxFileDialog(this, wxT("Wybierz plik"), wxT(""), wxT(""), wxT("MP4 file (*.mp4)|*.mp4|AVI file (*.avi)|*.avi"));
if (fopen->ShowModal() == wxID_OK)
{
    wxString fname = fopen->GetFilename();
    media->Load(fname); // media is pointer to wxMediaCtrl object
    media->Play();
}

delete fopen;

When I open file, it doesn't play. I have no idea what to do.

Upvotes: 1

Views: 1716

Answers (1)

SteveL
SteveL

Reputation: 1821

The documentation states:

For general operation, all you need to do is call Load() to load the file you want to render, catch the EVT_MEDIA_LOADED event, and then call Play() to show the video/audio of the media in that event.

So the problem looks to be that the file hasn't finished loading when you try to play it. You can also see the mediaplayer sample in the samples directory of your wxWidgets installation for more details.

Upvotes: 2

Related Questions