Witamy na forum PC Format Zapraszamy do REJESTRACJI


Użytkownicy przeglądający ten wątek: 1 gości

Odtwarzacz mp3 w delphi7

#1
Odtwarzacz mp3 w delphi7
Witam. W jaki sposób mogę dodać wizualizacje do odtwarzacza napisanego w delphi bez użycia biblioteki BASS? Jeżeli to będzie możliwe to proszę o podpowiedź, a jeżeli nie ta w jaki sposób mam napisać odtwarzacz z biblioteką BASS.
 System operacyjny: windows_xp_2003 Przeglądarka: firefox
#2
RE: Odtwarzacz mp3 w delphi7
Witam, wraz z biblioteką BASS dołączone są przykładowe programy (między innymi SampleVis w folderze delphi). Proponuję zacząć od przejrzenia.
 System operacyjny: windows_xp_2003 Przeglądarka: firefox
#3
RE: Odtwarzacz mp3 w delphi7
Dziękuję. A jak mogę napisać odtwarzacz w BASS? Konkretnie mi chodzi o to że nie działa mi przycisk pauza. Gdy go klikam to cały odtwarzacz mi się zawiesza.
 System operacyjny: windows_xp_2003 Przeglądarka: firefox
#4
RE: Odtwarzacz mp3 w delphi7
Kod:
BASS_ChannelPause(handle);
Wraz z biblioteką dostarczona jest dokumentacja, więc sugeruję jej przejrzenie Wesoły Jeśli dalej nie działa, to czy mógłbyś zamieścić kod?
 System operacyjny: windows_xp_2003 Przeglądarka: firefox
#5
RE: Odtwarzacz mp3 w delphi7
Kod:
unit main;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, osc_vis, spectrum_vis,
  Dialogs, ExtCtrls, StdCtrls, ComCtrls, circle_vis, Bass, CommonTypes, ExtDlgs;

type
  TFormPlayer = class(TForm)
    Button1: TButton;
    OpenDialog: TOpenDialog;
    PaintFrame: TPaintBox;
    TimerRender: TTimer;
    BackImageRes: TImage;
    Button2: TButton;
    RadioDraw: TRadioGroup;
    GroupBox1: TGroupBox;
    TrackY: TTrackBar;
    TrackX: TTrackBar;
    Label1: TLabel;
    Label2: TLabel;
    Label4: TLabel;
    PanelBkg: TPanel;
    PanelPen: TPanel;
    Label6: TLabel;
    Label7: TLabel;
    ColorDialog: TColorDialog;
    GroupBox2: TGroupBox;
    TrackRad: TTrackBar;
    Label5: TLabel;
    GroupBox3: TGroupBox;
    SpecTrackWidth: TTrackBar;
    Label8: TLabel;
    PanelPeakColor: TPanel;
    Label9: TLabel;
    Label10: TLabel;
    Label11: TLabel;
    Button3: TButton;
    CheckSpecPeaks: TCheckBox;
    OpenPictureDialog: TOpenPictureDialog;
    SpinLineFall: TUpDown;
    SpinPeakFall: TUpDown;
    EditLineFall: TEdit;
    EditPeakFall: TEdit;
    RadioMode: TRadioGroup;
    Button4: TButton;
    Button5: TButton;
    Button6: TButton;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure TimerRenderTimer(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure RadioModeClick(Sender: TObject);


    procedure TrackRadChange(Sender: TObject);
    procedure PanelBkgClick(Sender: TObject);
    procedure PanelPenClick(Sender: TObject);
    procedure SpecTrackWidthChange(Sender: TObject);
    procedure PanelPeakColorClick(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure CheckSpecPeaksClick(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure SpinLineFallClick(Sender: TObject; Button: TUDBtnType);
    procedure SpinPeakFallClick(Sender: TObject; Button: TUDBtnType);
    procedure TrackOffStartDock(Sender: TObject;
      var DragObject: TDragDockObject);
    procedure TrackOffContextPopup(Sender: TObject; MousePos: TPoint;
      var Handled: Boolean);
    procedure TrackOffDragDrop(Sender, Source: TObject; X, Y: Integer);
    procedure TrackOffDragOver(Sender, Source: TObject; X, Y: Integer;
      State: TDragState; var Accept: Boolean);
    procedure TrackOffEndDock(Sender, Target: TObject; X, Y: Integer);
    procedure TrackOffEndDrag(Sender, Target: TObject; X, Y: Integer);
    procedure TrackOffEnter(Sender: TObject);
    procedure TrackOffExit(Sender: TObject);
    procedure TrackOffKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure TrackOffKeyPress(Sender: TObject; var Key: Char);
    procedure TrackOffKeyUp(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure TrackOffStartDrag(Sender: TObject;
      var DragObject: TDragObject);
    procedure Button4Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure Button6Click(Sender: TObject);

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

var
  FormPlayer : TFormPlayer;
  Channel    : DWORD;

implementation

{$R *.dfm}

procedure TFormPlayer.FormCreate(Sender: TObject);
begin
  BASS_Init(1, 44100, 0, Application.Handle, nil);

  CircleScope := TCircleScope.Create(PaintFrame.Width, PaintFrame.Height);
  OcilloScope := TOcilloScope.Create(PaintFrame.Width, PaintFrame.Height);
  Spectrum    := TSpectrum.Create(PaintFrame.Width, PaintFrame.Height);
end;


procedure TFormPlayer.Button1Click(Sender: TObject);
begin
  OpenDialog.Title  := 'Otwórz plik';

  if  OpenDialog.Execute then;
   Channel := BASS_StreamCreateFile(false, PChar(OpenDialog.FileName), 0, 0, 0);

     CircleScope.Offset := 400;
OcilloScope.Offset := 400;
Spectrum.Height := 400;
   CircleScope.Mode := RadioMode.ItemIndex;
  OcilloScope.Mode := RadioMode.ItemIndex;
  Spectrum.Mode := RadioMode.ItemIndex;
end;

procedure TFormPlayer.TimerRenderTimer(Sender: TObject);
var FFTFata : TFFTData; WaveData  : TWaveData;
begin

if BASS_ChannelIsActive(Channel) <> BASS_ACTIVE_PLAYING then Exit;

case RadioDraw.ItemIndex of
  0 :
   begin
    BASS_ChannelGetData(Channel, @WaveData, 2048);
    CircleScope.Draw (PaintFrame.Canvas.Handle, WaveData, TrackX.Position, TrackY.Position);
   end;

  1 :
   begin
    BASS_ChannelGetData(Channel, @WaveData, 2048);
    OcilloScope.Draw (PaintFrame.Canvas.Handle, WaveData, TrackX.Position - 50, TrackY.Position);
   end;

  2 :
   begin
    BASS_ChannelGetData(Channel, @FFTFata, BASS_DATA_FFT1024);
    Spectrum.Draw (PaintFrame.Canvas.Handle, FFTFata, TrackX.Position - 40, TrackY.Position - 60);
   end;
end;
end;

procedure TFormPlayer.Button2Click(Sender: TObject);
begin
OpenPictureDialog.Title  := 'Open Background Bitmap';
OpenPictureDialog.Filter := 'BMP|*.bmp';
if not OpenPictureDialog.Execute then exit;
BackImageRes.Picture.LoadFromFile(OpenPictureDialog.FileName);

CircleScope.SetBackGround(True, BackImageRes.Picture.Graphic);
CircleScope.Pen := clBlack;

OcilloScope.SetBackGround(True, BackImageRes.Picture.Graphic);
OcilloScope.Pen := clBlack;

Spectrum.SetBackGround(True, BackImageRes.Picture.Graphic);
Spectrum.Pen := clBlack;
end;

procedure TFormPlayer.RadioModeClick(Sender: TObject);
begin
  CircleScope.Mode := RadioMode.ItemIndex;
  OcilloScope.Mode := RadioMode.ItemIndex;
  Spectrum.Mode := RadioMode.ItemIndex;
end;





procedure TFormPlayer.TrackRadChange(Sender: TObject);
begin
CircleScope.Radius := TrackRad.Position;
end;

procedure TFormPlayer.PanelBkgClick(Sender: TObject);
begin
ColorDialog.Color := PanelBkg.Color;
  if not ColorDialog.Execute then Exit;
   PanelBkg.Color := ColorDialog.Color;
    CircleScope.BackColor := ColorDialog.Color;
    OcilloScope.BackColor := ColorDialog.Color;
    Spectrum.BackColor := ColorDialog.Color;
end;

procedure TFormPlayer.PanelPenClick(Sender: TObject);
begin
ColorDialog.Color := PanelPen.Color;
  if not ColorDialog.Execute then Exit;
   PanelPen.Color := ColorDialog.Color;
    CircleScope.Pen := ColorDialog.Color;
    OcilloScope.Pen := ColorDialog.Color;
    Spectrum.Pen := ColorDialog.Color;
end;

procedure TFormPlayer.SpecTrackWidthChange(Sender: TObject);
begin
  Spectrum.Width := SpecTrackWidth.Position;
end;

procedure TFormPlayer.PanelPeakColorClick(Sender: TObject);
begin
ColorDialog.Color := PanelPeakColor.Color;
  if not ColorDialog.Execute then Exit;
   PanelPeakColor.Color := ColorDialog.Color;
    Spectrum.Peak := ColorDialog.Color;
end;

procedure TFormPlayer.Button3Click(Sender: TObject);
begin
CircleScope.SetBackGround(False, BackImageRes.Picture.Graphic);
CircleScope.Pen := PanelPen.Color;

OcilloScope.SetBackGround(False, BackImageRes.Picture.Graphic);
OcilloScope.Pen := PanelPen.Color;

Spectrum.SetBackGround(False, BackImageRes.Picture.Graphic);
Spectrum.Pen := PanelPen.Color;
end;

procedure TFormPlayer.CheckSpecPeaksClick(Sender: TObject);
begin
Spectrum.DrawPeak := CheckSpecPeaks.Checked;
end;

procedure TFormPlayer.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Bass_Free;
end;

procedure TFormPlayer.SpinLineFallClick(Sender: TObject; Button: TUDBtnType);
begin
Spectrum.LineFallOff := SpinLineFall.Position;
end;

procedure TFormPlayer.SpinPeakFallClick(Sender: TObject; Button: TUDBtnType);
begin
Spectrum.PeakFallOff := SpinPeakFall.Position;
end;

procedure TFormPlayer.TrackOffStartDock(Sender: TObject;
  var DragObject: TDragDockObject);
begin
CircleScope.Offset := 400;
OcilloScope.Offset := 400;
Spectrum.Height := 400;
end;

procedure TFormPlayer.TrackOffContextPopup(Sender: TObject;
  MousePos: TPoint; var Handled: Boolean);
begin
CircleScope.Offset := 400;
OcilloScope.Offset := 400;
Spectrum.Height := 400;
end;

procedure TFormPlayer.TrackOffDragDrop(Sender, Source: TObject; X,
  Y: Integer);
begin
CircleScope.Offset := 400;
OcilloScope.Offset := 400;
Spectrum.Height := 400;
end;

procedure TFormPlayer.TrackOffDragOver(Sender, Source: TObject; X,
  Y: Integer; State: TDragState; var Accept: Boolean);
begin
CircleScope.Offset := 400;
OcilloScope.Offset := 400;
Spectrum.Height := 400;
end;

procedure TFormPlayer.TrackOffEndDock(Sender, Target: TObject; X,
  Y: Integer);
begin
CircleScope.Offset := 400;
OcilloScope.Offset := 400;
Spectrum.Height := 400;
end;

procedure TFormPlayer.TrackOffEndDrag(Sender, Target: TObject; X,
  Y: Integer);
begin
CircleScope.Offset := 400;
OcilloScope.Offset := 400;
Spectrum.Height := 400;
end;

procedure TFormPlayer.TrackOffEnter(Sender: TObject);
begin
CircleScope.Offset := 400;
OcilloScope.Offset := 400;
Spectrum.Height := 400;
end;

procedure TFormPlayer.TrackOffExit(Sender: TObject);
begin
CircleScope.Offset := 400;
OcilloScope.Offset := 400;
Spectrum.Height := 400;
end;

procedure TFormPlayer.TrackOffKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
CircleScope.Offset := 400;
OcilloScope.Offset := 400;
Spectrum.Height := 400;
end;

procedure TFormPlayer.TrackOffKeyPress(Sender: TObject; var Key: Char);
begin
CircleScope.Offset := 400;
OcilloScope.Offset := 400;
Spectrum.Height := 400;
end;

procedure TFormPlayer.TrackOffKeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
CircleScope.Offset := 400;
OcilloScope.Offset := 400;
Spectrum.Height := 400;
end;

procedure TFormPlayer.TrackOffStartDrag(Sender: TObject;
  var DragObject: TDragObject);
begin
CircleScope.Offset := 400;
OcilloScope.Offset := 400;
Spectrum.Height := 400;
end;



procedure TFormPlayer.Button4Click(Sender: TObject);
begin

    BASS_Channelstop(handle);
end;

procedure TFormPlayer.Button5Click(Sender: TObject);
begin

    BASS_ChannelPlay(Channel, false);
end;

procedure TFormPlayer.Button6Click(Sender: TObject);
begin
    BASS_Channelpause(Channel);
end;

end.

Jeżeli Ci się uda mi pomóc stawiam Piwo
 System operacyjny: windows_seven Przeglądarka: firefox
Programy: Polecane / Nowe / Inne



Użytkownicy forum szukali:
delphi openpicturedialog w nowesz wersji

Podobne wątki (Odtwarzacz mp3 w delphi7)
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
Ściana Połączenie biblitoeki BASS z komponentem mediaplayer w delphi7 janex19950 0 1320 28.05.2012, 10:12
Ostatni post: janex19950
Question Odtwarzacz mp3 w Deplhi janex19950 4 1391 18.05.2012, 18:34
Ostatni post: janex19950
  poczatki programowania w Delphi7 maniek1129z 15 3918 16.01.2012, 13:48
Ostatni post: maniek1129z

Skocz do:


Wybrane wątki (Odtwarzacz mp3 w delphi7)
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  Skrypt pod sklep internetowy Talcia 4 2178 14.12.2019 19:48
Ostatni post: hexopex760
  Poszukuję pomysłu na prosty program ;) janciu96 5 8407 13.12.2019 23:32
Ostatni post: Ajgor
  Programowanie Batch (CMD) Informatyk2019 0 1076 11.12.2019 18:30
Ostatni post: Informatyk2019
  [JavaScript] Znajdowanie przedziału czasu rafal12999 0 505 10.12.2019 17:58
Ostatni post: rafal12999
  Przekazywanie wskaźnika przez referencję w Qt Trojan3000 3 8524 10.12.2019 13:16
Ostatni post: Ajgor
  Proszę o pomoc w uzupełnieniu ankiety dt. Zawodu Programisty MaleMonki 0 949 17.11.2019 12:47
Ostatni post: MaleMonki
  Spring framework – jakie strony polecacie do nauki? olek23 5 3361 15.11.2019 15:57
Ostatni post: Alsenas
  Programowanie windy (problem) w C++ mysza2323 2 2074 06.11.2019 23:04
Ostatni post: mysza2323
  Programy w C ~Anonim 1 2511 22.10.2019 17:48
Ostatni post: Szachista
  Książki do nauki C# olek23 14 9976 17.10.2019 13:06
Ostatni post: Ajgor
  Wyświetlanie informacji z bazy danych na stronie www PitPlay 1 3561 16.09.2019 11:18
Ostatni post: Ajgor
  Błąd przy uruchamianiu programu w Java z wiersza poleceń Physicist 3 2480 30.08.2019 14:16
Ostatni post: Physicist
  Python z wiersza poleceń Physicist 15 12031 21.08.2019 20:14
Ostatni post: Physicist
  Transfer plików via FTP Visual Basic FireBytes 3 5534 15.08.2019 07:41
Ostatni post: Szachista
  Menu wysuwane z boku patryk67 1 4259 07.08.2019 12:43
Ostatni post: aht