Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 21-09-2013
Anitan Anitan is offline
Registrado
NULL
 
Registrado: ago 2013
Posts: 6
Poder: 0
Anitan Va por buen camino
Arrow Alguna idea de como Usar TMediaPlayer!!

Antes q nada ya busque con el navegador de buscar y claro encontre hilos interesantes pero ninguno de ellos resuelve mi duda...

tengo entendido q se hace uso de 2 de components(tmediaplayer, topendialog) e incluso acudi a los videos y tampoco no resuelve mi duda...

ya q el open dialog abre una ventana de tu S.O para buscar tus music y para elegir una carpeta llenas de musica(pones su opcion en multiselect en true) muy cierto no.

basicamente mi duda es: q no quiero quiero q se abra esta ventana y cargue todos las musicas automaticamente dandole la ubicacion de tales archivos (y como hacerlo).


Cualquier idea sera de buena ayuda...!!

Adios y muchas graxxx!!
Responder Con Cita
  #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: 21
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
  #3  
Antiguo 03-04-2014
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Poder: 21
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular


Nelson.

Última edición por nlsgarcia fecha: 03-04-2014 a las 17:17:29.
Responder Con Cita
  #4  
Antiguo 11-05-2015
rmmarcus rmmarcus is offline
Registrado
NULL
 
Registrado: abr 2015
Posts: 4
Poder: 0
rmmarcus Va por buen camino
Nelson, este es el código con el que estoy trabajando:
Código Delphi [-]
unit Unit1;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ExtCtrls, Vcl.ComCtrls, Vcl.StdCtrls, MMSystem,
  Vcl.MPlayer, ShlObj;
//  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
//  ExtCtrls, ComCtrls, StdCtrls, XPMan;

type
  TFrmSonidos1 = class(TForm)
    BtnEjecutar: TButton;
    RdoGrpFormato: TRadioGroup;
    TrkBarIzq: TTrackBar;
    TrkBarDer: TTrackBar;
    LblControlDer: TLabel;
    LblControlIzc: TLabel;
    LblArchivo: TLabel;
    Panel1: TPanel;
    Imagen: TImage;
    OpenDialog1: TOpenDialog;
    MediaPlayer1: TMediaPlayer;
    BtnAbrir: TButton;
    btnDetener: TButton;
    procedure BtnEjecutarClick(Sender: TObject);
    procedure TrkBarDerChange(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure RdoGrpFormatoClick(Sender: TObject);
    procedure BtnAbrirClick(Sender: TObject);
    procedure btnDetenerClick(Sender: TObject);
    procedure MediaPlayer1Click(Sender: TObject; Button: TMPBtnType;
      var DoDefault: Boolean);
  private
    { Private declarations }
    Procedure Sonar;
    Procedure MostrarVolumen;
  public
    { Public declarations }
  end;

var
  FrmSonidos1: TFrmSonidos1;
  ArchWAV    : String;
  CadWAV     : array[0..256] of Char;

implementation

{$R *.DFM}

Procedure TFrmSonidos1.Sonar;
Begin
  StrPLCopy(CadWAV, ArchWAV, 256);
  Case RdoGrpFormato.ItemIndex of
    0: PlaySound(CadWAV, 0, SND_ASYNC);
    1: PlaySound(CadWAV, 0, SND_SYNC);
    2: PlaySound(CadWAV, 0, SND_ASYNC + SND_LOOP)
  End
End;

procedure TFrmSonidos1.MediaPlayer1Click(Sender: TObject; Button: TMPBtnType;
  var DoDefault: Boolean);
begin
  if Button = TMPBtnType.btStop then
     BtnDetener.Click;
end;

Procedure TFrmSonidos1.MostrarVolumen;
var
  Volumen: dWord;
  Izq,Der: Word;

begin
  WaveOutGetVolume(WAVE_MAPPER,@Volumen);
  Izq := Volumen and $ffff;     //Canal Izquierdo
  Der := Volumen shr $10;       //Canal Derecho
  TrkBarIzq.Position := Izq;
  TrkBarDer.Position := Der;
  Caption := 'Volumen Salida WAV Izq: ' + IntToStr(Izq)
           + ' - Der: ' + IntToStr(Der)
end;

procedure TFrmSonidos1.BtnAbrirClick(Sender: TObject);
var
OpenMediaDialog : TOpenDialog;
begin
  OpenMediaDialog := TOpenDialog.Create(Self);
  OpenMediaDialog.Filter := 'Abrir Archivo MP3|*.MP3';
  if OpenMediaDialog.Execute() then
  begin
    MediaPlayer1.FileName := OpenMediaDialog.FileName;
    if (FileExists(OpenMediaDialog.FileName)) and
       (not DirectoryExists(OpenMediaDialog.FileName)) then
    begin
      MediaPlayer1.Wait := true;
      MediaPlayer1.Open;
      MediaPlayer1.Play;
      MediaPlayer1.EnabledButtons :=
        [TMPBtnType.btPause, TMPBtnType.btStop, TMPBtnType.btPlay];
        BtnDetener.Enabled := true;
        BtnAbrir.Enabled   := false;
    end;
  end;

  OpenMediaDialog.Free;
end;

procedure TFrmSonidos1.btnDetenerClick(Sender: TObject);
begin
  MediaPlayer1.Stop;
  MediaPlayer1.Close;

  MediaPlayer1.EnabledButtons := [];
  BtnAbrir.Enabled := true;
end;

procedure TFrmSonidos1.BtnEjecutarClick(Sender: TObject);
begin
  OpenDialog1.Execute;
  ArchWAV := OpenDialog1.FileName;
  LblArchivo.Caption := ArchWAV;
  Sonar
end;

procedure TFrmSonidos1.TrkBarDerChange(Sender: TObject);
var
  Volumen: dWord;
  Izq,Der: Word;
begin
  Izq := TrkBarIzq.Position;     //Canal Izquierdo
  Der := TrkBarDer.Position;     //Canal Derecho
  Volumen := (Der shl $10) + (Izq and $ffff);
  waveOutSetVolume(WAVE_MAPPER,Volumen);
  MostrarVolumen
end;

procedure TFrmSonidos1.FormCreate(Sender: TObject);
begin
  MostrarVolumen;

  MediaPlayer1.AutoEnable := false;
  MediaPlayer1.EnabledButtons := [];
end;

procedure TFrmSonidos1.RdoGrpFormatoClick(Sender: TObject);
begin
  Sonar
end;
end.
Este reproduce archivos WAV controlando el volumen de salida Izquierdo y Derecho con un par de TTrackBar.
Lo que intento hacer es poder reproducir en el mismo programa MP3 con el TMediaPlayer.
Pero no estoy familiarizado con los codecs, no se como manejarlo.

Última edición por nlsgarcia fecha: 11-05-2015 a las 06:46:17. Razón: Sintaxis Delphi
Responder Con Cita
  #5  
Antiguo 11-05-2015
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Poder: 21
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
rmmarcus,

Cita:
Empezado por rmmarcus
...no estoy familiarizado con los codecs, no se como manejarlo...


Revisa esta información:
Espero sea útil

Nelson.
Responder Con Cita
Respuesta



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 21:04:49.


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