RAD Studio VCL Reference
ContentsIndex
PreviousUpNext
TMediaPlayer Class

TMediaPlayer controls devices that provide a Media Control Interface (MCI) driver.

Pascal
TMediaPlayer = class(TCustomControl);
C++
class TMediaPlayer : public TCustomControl;

The TMediaPlayer component includes a set of buttons (Play, Stop, Eject, and so on) that control a multimedia device such as a CD-ROM drive, MIDI sequencer, or VCR. A multimedia device may be hardware or software. 

The media player component contains of multiple buttons. These buttons can be clicked with the mouse, but are not separate objects or button components. 

ButtonValueAction

Button 
Value 
Action 
Play  
btPlay  
Plays the media player  
Pause  
btPause  
Pauses playing or recording. If already paused when clicked, resumes playing or recording.  
Stop  
btStop  
Stops playing or recording  
Next  
btNext  
Skips to the next track, or to the end if the medium doesn't use tracks  
Prev  
btPrev  
Skips to the previous track, or to the beginning if the medium doesn't use tracks  
Step  
btStep  
Moves forward a number of frames  
Back  
btBack  
Moves backward a number of frames  
Record  
btRecord  
Starts recording  
Eject  
btEject  
Ejects the medium  

The multimedia device is played, paused, stopped, and so on when the user clicks the corresponding button on the TMediaPlayer component. The device can also be controlled by the control methods that correspond to the buttons (Play, Pause, Stop, Next, Previous, Step, Back, StartRecording, and Eject). 

The type of multimedia device (such as dtWaveAudio or dtVideodisc) is specified by the DeviceType property. If the device stores its media in a file, the name of the media file is specified by the FileName property. If DeviceType is dtAutoSelect, the media player attempts to determine the type of device from the extension of the file specified by FileName

To have the media player attempt to open the device specified by DeviceType automatically when the media player component is created at runtime, set the AutoOpen property to true.  

C++ Examples: 

 

//
//This example demonstrates the use of TMediaPlayer component. Assuming 2 buttons
//for Open and Stop are present on the form.
//Note: AutoEnable must be set to false to be able to control
//the buttons manually.
//
void __fastcall TForm2::btOpenClick(TObject *Sender)
{
    TOpenDialog* OpenMediaDialog;

    OpenMediaDialog = new TOpenDialog(this);
    OpenMediaDialog->Filter = "All Video Files (*.avi)|*.avi";
  // There are avi files in
  // C:\Documents and Settings\All Users\Documents\RAD Studio\6.0\Demos\DelphiWin32\VCLWin32\CoolStuff
    if (OpenMediaDialog->Execute())
    {
        /* Assign a file to the media player */
        MediaPlayer1->FileName = OpenMediaDialog->FileName;

        /* Check if the file exists and is not a directory */
        if ((FileExists(OpenMediaDialog->FileName)) &&
           (!DirectoryExists(OpenMediaDialog->FileName)))
        {
            /* Open the files */
            MediaPlayer1->Wait = true;
            MediaPlayer1->Open();
            MediaPlayer1->Play();

            /* Override automatic button controlling */
            MediaPlayer1->EnabledButtons =
                TButtonSet() <<
                TMPBtnType::btPause <<
                TMPBtnType::btStop <<
                TMPBtnType::btPlay;


            /* Enable  the stop button */
            btStop->Enabled = true;
            btOpen->Enabled = false;
        }
    }

    delete OpenMediaDialog;
}

void __fastcall TForm2::btStopClick(TObject *Sender)
{
    /* Stop and close the media */
    MediaPlayer1->Stop();
    MediaPlayer1->Close();

    MediaPlayer1->EnabledButtons = TButtonSet();

    /* Enable open button again */
    btOpen->Enabled = true;
}

void __fastcall TForm2::FormCreate(TObject *Sender)
{
    /* Disable all buttons */
    MediaPlayer1->AutoEnable = false;
    MediaPlayer1->EnabledButtons = TButtonSet();
}

void __fastcall TForm2::MediaPlayer1PostClick(TObject *Sender,
          TMPBtnType Button)
{
    if (Button == TMPBtnType::btStop)
        btStop->Click();
}

 

Delphi Examples: 

{
This example demonstrates the use of TMediaPlayer component. Assuming 2 buttons
for Open and Stop are present on the form.
Note: AutoEnable must be set to false to be able to control
the buttons manually.
}

procedure TForm2.btOpenClick(Sender: TObject);
var
  OpenMediaDialog : TOpenDialog;
begin
  OpenMediaDialog := TOpenDialog.Create(Self);
  OpenMediaDialog.Filter := 'All Video Files (*.avi)|*.avi';
  // There are avi files in
  // C:\Documents and Settings\All Users\Documents\RAD Studio\6.0\Demos\DelphiWin32\VCLWin32\CoolStuff
  if OpenMediaDialog.Execute() then
  begin
    { Assign a file to the media player }
    MediaPlayer1.FileName := OpenMediaDialog.FileName;

    { Check if the file exists and is not a directory }
    if (FileExists(OpenMediaDialog.FileName)) and
       (not DirectoryExists(OpenMediaDialog.FileName)) then
    begin
      { Open the files }
      MediaPlayer1.Wait := true;
      MediaPlayer1.Open;
      MediaPlayer1.Play;

      { Override automatic button controlling }
      MediaPlayer1.EnabledButtons :=
        [TMPBtnType.btPause, TMPBtnType.btStop, TMPBtnType.btPlay];

      { Enable  the stop button }
      btStop.Enabled := true;
      btOpen.Enabled := false;
    end;
  end;

  OpenMediaDialog.Free;
end;

procedure TForm2.btStopClick(Sender: TObject);
begin
  { Stop and close the media }
  MediaPlayer1.Stop;
  MediaPlayer1.Close;

  MediaPlayer1.EnabledButtons := [];

  { Enable open button again }
  btOpen.Enabled := true;
end;

procedure TForm2.FormCreate(Sender: TObject);
begin
  { Disable all buttons }
  MediaPlayer1.AutoEnable := false;
  MediaPlayer1.EnabledButtons := [];
end;

procedure TForm2.MediaPlayer1PostClick(Sender: TObject;
  Button: TMPBtnType);
begin
  if Button = TMPBtnType.btStop then
     btStop.Click;
end;

 

Copyright(C) 2009 Embarcadero Technologies, Inc. All Rights Reserved.
What do you think about this topic? Send feedback!