Ver Mensaje Individual
  #4  
Antiguo 11-05-2015
rmmarcus rmmarcus is offline
Registrado
NULL
 
Registrado: abr 2015
Posts: 4
Reputación: 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