Saltar a contenido

Media Player SDK para Delphi

Media Player SDK Delphi

Esta sección cubre el uso de Media Player SDK con Delphi para aplicaciones de reproducción multimedia.

Componente Principal

TMediaPlayer

El componente TMediaPlayer proporciona capacidades completas de reproducción multimedia.

var
  MediaPlayer1: TMediaPlayer;
begin
  MediaPlayer1 := TMediaPlayer.Create(Self);
  MediaPlayer1.Parent := Panel1;
  MediaPlayer1.Align := alClient;
end;

Reproducción Básica

Reproducir Archivo

procedure TForm1.PlayFile(const Filename: string);
begin
  MediaPlayer1.Filename := Filename;
  MediaPlayer1.Play;
end;

Controles de Reproducción

procedure TForm1.Play;
begin
  MediaPlayer1.Play;
end;

procedure TForm1.Pause;
begin
  MediaPlayer1.Pause;
end;

procedure TForm1.Stop;
begin
  MediaPlayer1.Stop;
end;

procedure TForm1.Resume;
begin
  MediaPlayer1.Resume;
end;
procedure TForm1.SeekTo(PositionMs: Int64);
begin
  MediaPlayer1.Position := PositionMs;
end;

function TForm1.GetDuration: Int64;
begin
  Result := MediaPlayer1.Duration;
end;

function TForm1.GetPosition: Int64;
begin
  Result := MediaPlayer1.Position;
end;

Control de Audio

procedure TForm1.SetVolume(Value: Integer);
begin
  // Volume: 0 a 100
  MediaPlayer1.Volume := Value;
end;

procedure TForm1.Mute;
begin
  MediaPlayer1.Mute := True;
end;

procedure TForm1.Unmute;
begin
  MediaPlayer1.Mute := False;
end;

procedure TForm1.SetBalance(Value: Integer);
begin
  // Balance: -100 (izquierda) a 100 (derecha)
  MediaPlayer1.Balance := Value;
end;

Velocidad de Reproducción

procedure TForm1.SetPlaybackSpeed(Rate: Double);
begin
  // Rate: 0.5 (mitad) a 2.0 (doble)
  MediaPlayer1.PlaybackRate := Rate;
end;

Reproducción de URLs

procedure TForm1.PlayURL(const URL: string);
begin
  MediaPlayer1.Filename := URL;
  MediaPlayer1.Play;
end;

procedure TForm1.PlayRTSP;
begin
  MediaPlayer1.Filename := 'rtsp://192.168.1.100:554/stream';
  MediaPlayer1.Play;
end;

procedure TForm1.PlayHLS;
begin
  MediaPlayer1.Filename := 'https://servidor.com/playlist.m3u8';
  MediaPlayer1.Play;
end;

Captura de Fotogramas

procedure TForm1.CaptureFrame;
begin
  MediaPlayer1.Snapshot_Save('C:\Capturas\frame.jpg');
end;

procedure TForm1.CaptureFrameToMemory;
var
  Bitmap: TBitmap;
begin
  Bitmap := TBitmap.Create;
  try
    MediaPlayer1.Snapshot_Get(Bitmap);
    Image1.Picture.Assign(Bitmap);
  finally
    Bitmap.Free;
  end;
end;

Pistas de Audio y Subtítulos

procedure TForm1.GetAudioTracks;
var
  i: Integer;
begin
  ComboBoxAudioTracks.Clear;
  for i := 0 to MediaPlayer1.Audio_Streams_Count - 1 do
  begin
    ComboBoxAudioTracks.Items.Add(MediaPlayer1.Audio_Stream_Name(i));
  end;
end;

procedure TForm1.SelectAudioTrack(Index: Integer);
begin
  MediaPlayer1.Audio_Stream_Index := Index;
end;

procedure TForm1.GetSubtitles;
var
  i: Integer;
begin
  ComboBoxSubtitles.Clear;
  for i := 0 to MediaPlayer1.Subtitles_Streams_Count - 1 do
  begin
    ComboBoxSubtitles.Items.Add(MediaPlayer1.Subtitles_Stream_Name(i));
  end;
end;

procedure TForm1.SelectSubtitle(Index: Integer);
begin
  MediaPlayer1.Subtitles_Stream_Index := Index;
end;

Modo Pantalla Completa

procedure TForm1.ToggleFullscreen;
begin
  MediaPlayer1.Fullscreen := not MediaPlayer1.Fullscreen;
end;

Eventos

procedure TForm1.MediaPlayer1Play(Sender: TObject);
begin
  StatusBar1.SimpleText := 'Reproduciendo';
end;

procedure TForm1.MediaPlayer1Pause(Sender: TObject);
begin
  StatusBar1.SimpleText := 'Pausado';
end;

procedure TForm1.MediaPlayer1Stop(Sender: TObject);
begin
  StatusBar1.SimpleText := 'Detenido';
end;

procedure TForm1.MediaPlayer1End(Sender: TObject);
begin
  StatusBar1.SimpleText := 'Fin del archivo';
end;

procedure TForm1.MediaPlayer1Error(Sender: TObject; ErrorCode: Integer; ErrorText: string);
begin
  ShowMessage('Error: ' + ErrorText);
end;

procedure TForm1.MediaPlayer1PositionChange(Sender: TObject; Position, Duration: Int64);
begin
  TrackBar1.Max := Duration;
  TrackBar1.Position := Position;
  LabelPosition.Caption := Format('%d:%02d / %d:%02d', 
    [Position div 60000, (Position div 1000) mod 60,
     Duration div 60000, (Duration div 1000) mod 60]);
end;

Formatos Soportados

Tipo Formatos
Video MP4, AVI, MKV, MOV, WMV, FLV, WebM
Audio MP3, AAC, FLAC, WAV, OGG, WMA
Streaming RTSP, RTMP, HTTP, HLS, DASH