AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte Audio Player
Thema durchsuchen
Ansicht
Themen-Optionen

Audio Player

Ein Thema von Hador · begonnen am 12. Dez 2004 · letzter Beitrag vom 12. Dez 2004
Antwort Antwort
Benutzerbild von Hador
Hador

Registriert seit: 11. Dez 2004
Ort: Recke
682 Beiträge
 
Turbo Delphi für Win32
 
#1

Audio Player

  Alt 12. Dez 2004, 01:09
Ich bin in Delphi noch relativ neu, und hab zur Übung mal einen kleinen Audio Player entwickelt, der ganze Verzeichnisse abspielt und so ohne Playlists auskommt.
Ich würde mich über Verbesserungsvorschläge freuen.
Sehr warscheinlich sind im Programm auch noch einige Bugs drin.
Wenn ihr welche findet, meldet euch.
Angehängte Dateien
Dateityp: exe player.exe (209,0 KB, 31x aufgerufen)
Lars Kiesow
  Mit Zitat antworten Zitat
Benutzerbild von Ultimator
Ultimator

Registriert seit: 17. Feb 2004
Ort: Coburg
1.860 Beiträge
 
FreePascal / Lazarus
 
#2

Re: Audio Player

  Alt 12. Dez 2004, 01:15
Zitat:
Player.exe hat ein Problem festgestellt und muss beendet werden.


Kanns leider nicht starten

[edit] Herzlich Willkommen in der DP [/edit]
Julian J. Pracht
  Mit Zitat antworten Zitat
Benutzerbild von Hador
Hador

Registriert seit: 11. Dez 2004
Ort: Recke
682 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Audio Player

  Alt 12. Dez 2004, 01:31
Zitat von Ultimator:
Zitat:
Player.exe hat ein Problem festgestellt und muss beendet werden.


Kanns leider nicht starten
Ich vermute mal, dass du Windows XP hast, als ich mein Programm darunter grad probiert habe, kam bei mir die gleiche Fehlermeldung. Unter meinem Windows 2k läuft es problemlos.
kann es evt. daran liegen, dass ich die Unit "FileCtrl" verwendet habe? Delphi meldet mir beim Compilieren auch immer:

[Warnung] main.pas[7]: Unit 'FileCtrl' ist plattformspezifisch

Zitat von Ultimator:
[edit] Herzlich Willkommen in der DP [/edit]
Danke
Lars Kiesow
  Mit Zitat antworten Zitat
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
 
Delphi XE Professional
 
#4

Re: Audio Player

  Alt 12. Dez 2004, 09:58
Hi!

Nein, daran kann es wohl nicht liegen, da WinXP und Win2000 als gleiche Platform (nämlich Windows) gelten.
Wenn du den Source-Code postest kann man ja mal drüberschauen, wo es hängen könnte.


Ciao Frederic
Frederic Kerber
  Mit Zitat antworten Zitat
Wolverine

Registriert seit: 30. Mai 2003
Ort: Düsseldorf (NRW)
109 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: Audio Player

  Alt 12. Dez 2004, 10:13
Morgen Mädels,

1. Herzlich Willkommen Hador in der DP

2. Muss man dein Programm in irgendein bestimmtes Verzeichnis packen? Ich bekomme nämlich 2 Fehlermeldungen.

Schöne Grüße

P.S.: Fehlermeldungen siehe Anhang Ich habe Windows XP Home mit ServicePack 2
Miniaturansicht angehängter Grafiken
audioplayer_02.jpg   audioplayer_01.jpg  
Guido L.
The nice thing about Windows is - It does not just crash, it displays a dialog box and lets you press 'OK' first.
Guten Rutsch und Start ins neue Jahr 2005
  Mit Zitat antworten Zitat
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
 
Delphi XE Professional
 
#6

Re: Audio Player

  Alt 12. Dez 2004, 10:17
Hi!

Bekomme auch Fehlermeldung 2.
Auch das Starten im Kompatibilitätsmodus für Win2000 bringt nix.


Ciao Frederic
Frederic Kerber
  Mit Zitat antworten Zitat
Benutzerbild von Hador
Hador

Registriert seit: 11. Dez 2004
Ort: Recke
682 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: Audio Player

  Alt 12. Dez 2004, 12:30
So hier mal der Quellcode
Delphi-Quellcode:
unit main;

interface

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

type
  TForm1 = class(TForm)
    Button1: TButton;
    MediaPlayer1: TMediaPlayer;
    FileListBox1: TFileListBox;
    DirectoryListBox1: TDirectoryListBox;
    DriveComboBox1: TDriveComboBox;
    ScrollBar1: TScrollBar;
    Timer1: TTimer;
    Button2: TButton;
    Button3: TButton;
    TrackBar1: TTrackBar;
    procedure Button1Click(Sender: TObject);
    procedure FileListBox1DblClick(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure SetVolume(const volL, volR: Word);
    procedure GetVolume(var volL, volR: Word);
    procedure TrackBar1Change(Sender: TObject);
    procedure FormShow(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
  DateiNr,Dateianzahl: integer;
  VolLi, VolRe: Word;

implementation

{$R *.dfm}
// -------------------------------------------------- Stop ----------
procedure TForm1.Button1Click(Sender: TObject);
begin
   MediaPlayer1.Stop;
   MediaPlayer1.Position := 0;
   Timer1.Enabled := false;
   ScrollBar1.Position := 0;
end;
// ---------------------------------------- Doppelklick auf Datei ----------
procedure TForm1.FileListBox1DblClick(Sender: TObject);
var
   x:integer;
begin
   MediaPlayer1.Stop;
   for x:=0 to (FileListBox1.Count-1) do
      if FileListBox1.Selected[x] then DateiNr:=x;
   if DateiNr = 0 then
      FileListBox1.Selected[0] := true;
   MediaPlayer1.FileName := FileListBox1.FileName;
   MediaPlayer1.Open;
   MediaPlayer1.Play;
   if MediaPlayer1.Length < 10000 then Timer1.Interval := 100;
   if MediaPlayer1.Length > 100000 then Timer1.Interval := 2000;
   Timer1.Enabled := true;
end;

// -------------------------------------------------- Position ----------
procedure TForm1.Timer1Timer(Sender: TObject);
begin
   if ScrollBar1.Position < 100 then
   begin
      ScrollBar1.Position := Round(MediaPlayer1.Position / (MediaPlayer1.Length / 100));
   end;
   if MediaPlayer1.Position = MediaPlayer1.Length then
   begin
      ScrollBar1.Position := 0;
      if DateiNr >= FileListBox1.Count-1 then
      begin
         if FileListBox1.Count > 0 then
         begin
            FileListBox1.Selected[0] := true;
            FileListBox1DblClick(NIL);
         end else begin
            Button1Click(NIL);
         end;
      end else begin
         FileListBox1.Selected[DateiNr+1] := true;
         FileListBox1DblClick(NIL);
      end;
   end;

end;

// -------------------------------------------------- Play ----------
procedure TForm1.Button2Click(Sender: TObject);
var
   x,y:integer;
begin
   for x:=0 to (FileListBox1.Count-1) do
      if FileListBox1.Selected[x] then y:=x;
   if (MediaPlayer1.Position = 0) OR (DateiNr <> y) then
   begin
      if FileListBox1.Count > 0 then
         FileListBox1DblClick(NIL);
   end else
      MediaPlayer1.Play;
end;

// -------------------------------------------------- Pause ----------
procedure TForm1.Button3Click(Sender: TObject);
begin
   MediaPlayer1.Pause;
end;
// -------------------------------------------------- Lautstärke ermitteln ----------
procedure TForm1.GetVolume(var volL, volR: Word);
var
  hWO: HWAVEOUT;
  waveF: TWAVEFORMATEX;
  vol: DWORD;
begin
  volL:= 0;
  volR:= 0;
  // init TWAVEFORMATEX
  FillChar(waveF, SizeOf(waveF), 0);
  // open WaveMapper = std output of playsound
  waveOutOpen(@hWO, WAVE_MAPPER, @waveF, 0, 0, 0);
  // get volume
  waveOutGetVolume(hWO, @vol);
  volL:= vol and $FFFF;
  volR:= vol shr 16;
  waveOutClose(hWO);
end;
// -------------------------------------------------- Lautstärke setzen ----------
procedure TForm1.SetVolume(const volL, volR: Word);
var
  hWO: HWAVEOUT;
  waveF: TWAVEFORMATEX;
  vol: DWORD;
begin
  // init TWAVEFORMATEX
  FillChar(waveF, SizeOf(waveF), 0);
  // open WaveMapper = std output of playsound
  waveOutOpen(@hWO, WAVE_MAPPER, @waveF, 0, 0, 0);
  vol:= volL + volR shl 16;
  // set volume
  waveOutSetVolume(hWO, vol);
  waveOutClose(hWO);
end;
// -------------------------------------------------- Lautstärke setzen ----------
procedure TForm1.TrackBar1Change(Sender: TObject);
begin
   SetVolume(Round(VolLi/10*(10-TrackBar1.Position)),Round(VolRe/10*(10-TrackBar1.Position)));
end;

procedure TForm1.FormShow(Sender: TObject);
begin
   GetVolume(VolLi,VolRe);
end;

end.
Und hier noch mal ein Bild von dem Player, so wie der bei mir läuft.
Das Verzeichnis ist egal.
Der läuft so wie es aussieht, nur bei mir auf'm PC.
Warum ???
Miniaturansicht angehängter Grafiken
player.gif  
Lars Kiesow
  Mit Zitat antworten Zitat
Benutzerbild von dizzy
dizzy

Registriert seit: 26. Nov 2003
Ort: Lünen
1.932 Beiträge
 
Delphi 7 Enterprise
 
#8

Re: Audio Player

  Alt 12. Dez 2004, 17:27
[ot] Ja cool! Subway2Sally ist einfach edel [/ot]
Fabian K.
INSERT INTO HandVonFreundin SELECT * FROM Himmel
  Mit Zitat antworten Zitat
Ratte

Registriert seit: 12. Dez 2003
Ort: Erfurt
345 Beiträge
 
Delphi 2005 Personal
 
#9

Re: Audio Player

  Alt 12. Dez 2004, 17:32
Hi!

W2k:Auch Fehlermeldung ("Player.exe hat ein Problem festgestellt...").

Ratte
Schiffsratte der U.S.S. Delphipraxis, Laderaum 4538
BUSH:= TTerminator.create;
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:50 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz