Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #2  
Antiguo 23-09-2013
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Poder: 23
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
Anitan,

Cita:
Empezado por Anitan
...Alguna idea de como Usar TMediaPlayer...
Revisa este código:
Código Delphi [-]
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls, MPlayer, ComCtrls, MMSystem, ShlObj;

const
   MCI_SETAUDIO = $0873;
   MCI_DGV_SETAUDIO_VOLUME = $4002;
   MCI_DGV_SETAUDIO_ITEM = $00800000;
   MCI_DGV_SETAUDIO_VALUE = $01000000;
   MCI_DGV_STATUS_VOLUME = $4019;
   CSIDL_MYMUSIC = $D;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    ListBox1: TListBox;
    ScrollBar1: TScrollBar;
    ProgressBar1: TProgressBar;
    MediaPlayer1: TMediaPlayer;
    Timer1: TTimer;
    GroupBox1: TGroupBox;
    CheckBox1: TCheckBox;
    CheckBox2: TCheckBox;
    procedure FormCreate(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure ListBox1Click(Sender: TObject);
    procedure ListBox1DblClick(Sender: TObject);
    procedure MediaPlayer1Click(Sender: TObject; Button: TMPBtnType; var DoDefault: Boolean);
    procedure ScrollBar1Change(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    procedure Button3Click(Sender: TObject);
    procedure MediaPlayer1Notify(Sender: TObject);

  private
    { Private declarations }
  public
    { Public declarations }
  end;

  // Estructura de Set Values MediaPlayer
  MCI_DGV_SETAUDIO_PARMS = record
     dwCallback: DWORD;
     dwItem: DWORD;
     dwValue: DWORD;
     dwOver: DWORD;
     lpstrAlgorithm: PChar;
     lpstrQuality: PChar;
  end;

  // Estructura de Get Values MediaPlayer
  MCI_STATUS_PARMS = record
     dwCallback: DWORD;
     dwReturn: DWORD;
     dwItem: DWORD;
     dwTrack: DWORD;
  end;

var
  Form1: TForm1;
  Terminated : Boolean;
  PlayList : Boolean;

implementation

{$R *.dfm}

// Obtiene Path de Folders Especiales en Windows
function GetSpecialFolderPath(const CSIDL: Integer): string;
var
  Buffer: Array[0..255] of Char;

begin

  if SHGetSpecialFolderPath(Application.Handle, @Buffer[0], CSIDL, False) then
     Result := Buffer
  else
     RaiseLastOSError;

end;

// Asigna el Volumen al MediaPlayer
procedure MPSetVolume(MP: TMediaPlayer; Volume: Integer) ;
var
   p: MCI_DGV_SETAUDIO_PARMS;
begin
   p.dwCallback := 0;
   p.dwItem := MCI_DGV_SETAUDIO_VOLUME;
   p.dwValue := Volume;
   p.dwOver := 0;
   p.lpstrAlgorithm := nil;
   p.lpstrQuality := nil;
   mciSendCommand(MP.DeviceID, MCI_SETAUDIO, MCI_DGV_SETAUDIO_VALUE or MCI_DGV_SETAUDIO_ITEM, Cardinal(@p)) ;
end;

// Obtiene el Volumen del MediaPlayer
function MPGetVolume(MP: TMediaPlayer): Integer;
var
   p: MCI_STATUS_PARMS;
begin
   p.dwCallback := 0;
   p.dwItem := MCI_DGV_STATUS_VOLUME;
   mciSendCommand(MP.DeviceID, MCI_STATUS, MCI_STATUS_ITEM, Cardinal(@p)) ;
   Result := p.dwReturn;
end;

// Establece Valores Iniciales de Ejecución
procedure TForm1.FormCreate(Sender: TObject);
begin

   MediaPlayer1.VisibleButtons := [btPlay, btPause, btStop];
   MediaPlayer1.Width := 271;
   MediaPlayer1.Height := 30;
   MediaPlayer1.TimeFormat := tfMilliseconds;
   MediaPlayer1.AutoEnable := False;
   MediaPlayer1.EnabledButtons := [];

   ScrollBar1.Min := 0;
   ScrollBar1.Max := 1000;

   ScrollBar1.Position := MPGetVolume(MediaPlayer1);

   ProgressBar1.Smooth := True;
   ProgressBar1.Min := 0;
   ProgressBar1.Max := 0;

   Timer1.Interval := 1000;

end;

// Muestra el Progreso de Reproducción de un Archivo MP3
procedure TForm1.Timer1Timer(Sender: TObject);
begin
   if ProgressBar1.Max <> 0 then
      ProgressBar1.Position := MediaPlayer1.Position;
end;

// Selecciona Archivos MP3 para su Reproducción (Por Defecto Folder My Music)
procedure TForm1.Button1Click(Sender: TObject);
var
   OpenDialog : TOpenDialog;
   i : Integer;

begin

   OpenDialog := TOpenDialog.Create(self);
   OpenDialog.InitialDir := GetSpecialFolderPath(CSIDL_MYMUSIC);
   OpenDialog.Options := [ofFileMustExist,ofAllowMultiSelect];
   OpenDialog.Filter := 'MP3|*.mp3';
   OpenDialog.FilterIndex := 1;

   if OpenDialog.Execute then
   begin

      for i:= 0 to OpenDialog.Files.Count - 1 do
      begin
         ListBox1.Items.Add(OpenDialog.Files[i]);
         if ListBox1.ScrollWidth < ListBox1.Canvas.TextWidth(OpenDialog.Files[i]) then
            ListBox1.ScrollWidth := ListBox1.Canvas.TextWidth(OpenDialog.Files[i]) + 120;
      end;

      MediaPlayer1.EnabledButtons := [btPlay, btPause, btStop];

      MediaPlayer1.FileName := ListBox1.Items.Strings[0];
      MediaPlayer1.Open;
      ListBox1.ItemIndex := 0;

   end;

   OpenDialog.Free;

end;

// Lista de Reproducción Automática de Archivos MP3 en el ListBox1
procedure TForm1.Button2Click(Sender: TObject);
var
   i : Integer;

begin

   if ListBox1.Items.Count <> 0 then
   begin

      PlayList := True;

      ScrollBar1.Position := MPGetVolume(MediaPlayer1);
      ProgressBar1.Position := 0;

      repeat

         for i := 0 to ListBox1.Items.Count - 1 do
         begin

            ListBox1.ItemIndex := i;
            MediaPlayer1.FileName := ListBox1.Items.Strings[i];
            MediaPlayer1.EnabledButtons := [btPlay, btPause, btStop];
            MediaPlayer1.Wait := True;
            MediaPlayer1.Open;
            MediaPlayer1.Play;
            ProgressBar1.Max := MediaPlayer1.Length;

            repeat
               Application.ProcessMessages;
               if Terminated then Exit;
            until (MediaPlayer1.Position = MediaPlayer1.Length);

         end;

      until not CheckBox2.Checked; // Repite una Lista de Forma Continua 

      PlayList := False;

   end;

end;

// Borra Lista de Reproducción de Archivos MP3
procedure TForm1.Button3Click(Sender: TObject);
begin
   ListBox1.Clear;
   MediaPlayer1.Stop;
   MediaPlayer1.EnabledButtons := [];
   ProgressBar1.Position := 0;
end;

// Asigna un Archivo MP3 para su Reproducción Manual en MediaPlayer
procedure TForm1.ListBox1Click(Sender: TObject);
begin

   ScrollBar1.Position := 1000;
   MPSetVolume(MediaPlayer1,ScrollBar1.Position);

   MediaPlayer1.FileName := ListBox1.Items.Strings[ListBox1.ItemIndex];
   MediaPlayer1.EnabledButtons := [btPlay, btPause, btStop];
   MediaPlayer1.Open;
   ProgressBar1.Position := 0;
   ProgressBar1.Max := MediaPlayer1.Length;

   if PlayList then
      Terminated := True;

end;

// Reproduce un Archivo MP3 Automáticamente en MediaPlayer
procedure TForm1.ListBox1DblClick(Sender: TObject);
begin

   ScrollBar1.Position := 1000;
   MPSetVolume(MediaPlayer1,ScrollBar1.Position);
   ProgressBar1.Max := MediaPlayer1.Length;

   MediaPlayer1.FileName := ListBox1.Items.Strings[ListBox1.ItemIndex];
   MediaPlayer1.EnabledButtons := [btPlay, btPause, btStop];
   MediaPlayer1.Open;
   ProgressBar1.Position := 0;
   ProgressBar1.Max := MediaPlayer1.Length;

   if CheckBox1.Checked then
   begin
      Mediaplayer1.AutoRewind := True;
      Mediaplayer1.Notify := True;
   end;

   MediaPlayer1.Play;

   if PlayList then
      Terminated := True;

end;

// Gestiona las Acciones del MediaPlayer por medio de su Interfaz
procedure TForm1.MediaPlayer1Click(Sender: TObject; Button: TMPBtnType; var DoDefault: Boolean);
begin

   DoDefault := False;

   Mediaplayer1.AutoRewind := False;
   Mediaplayer1.Notify := False;

   case button of

      btPlay : begin

                  if CheckBox1.Checked then
                  begin
                     Mediaplayer1.AutoRewind := True;
                     Mediaplayer1.Notify := True;
                  end;

                  MediaPlayer1.Play;
                  ProgressBar1.Max := MediaPlayer1.Length;

               end;

      btStop : begin
                  MediaPlayer1.Stop;
                  MediaPlayer1.Position := 0;
                  Mediaplayer1.AutoRewind := False;
                  Mediaplayer1.Notify := False;
                  ProgressBar1.Max := 0;
               end;

      btPause : MediaPlayer1.Pause;

   end;

end;

// Cambia el Volumen del MediaPlayer
procedure TForm1.ScrollBar1Change(Sender: TObject);
begin
   MPSetVolume(MediaPlayer1, ScrollBar1.Position) ;
end;

// Libera los Recursos del Form
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
   Action := caFree;
end;

// Control de Finalización del MediaPlayer por Lista de Reproducción Automática
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
   Terminated := True;
end;

// Repite un Archivo MP3 de Forma Continua
procedure TForm1.MediaPlayer1Notify(Sender: TObject);
begin
   if MediaPlayer1.NotifyValue = nvSuccessful then
   begin
      if CheckBox1.Checked then
      begin
         MediaPlayer1.Play;
         MediaPlayer1.Notify := True;
      end;
   end;
end;

end.
El código anterior selecciona y reproduce archivos MP3 por medio del componente TMediaPlayer, como se muestra en la siguiente imagen:



El ejemplo esta disponible en el link : http://terawiki.clubdelphi.com/Delph...ediaPlayer.rar

Espero sea útil

Nelson.

Última edición por nlsgarcia fecha: 23-09-2013 a las 01:49:43.
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Alguna idea?? Libarra MySQL 8 22-01-2008 19:44:50
Alguna Idea porfavor angeluz Conexión con bases de datos 8 12-12-2007 19:01:34
Alguna idea de como respaldar una base de datos desde el programa en ejecucion? h2o_mx OOP 5 15-01-2007 23:59:57
Ni idea de como usar Middlegen Arcioneo JAVA 0 10-01-2007 12:19:09
Alguna Idea alejodb Impresión 3 10-06-2004 17:29:43


La franja horaria es GMT +2. Ahora son las 20:45:15.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi