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
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)
 
Benutzerbild von Ultimator
Ultimator

 
FreePascal / Lazarus
 
#2
  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

 
Turbo Delphi für Win32
 
#3
  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

 
Delphi XE Professional
 
#4
  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

 
Delphi 7 Enterprise
 
#5
  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  
  Mit Zitat antworten Zitat
Benutzerbild von fkerber
fkerber

 
Delphi XE Professional
 
#6
  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

 
Turbo Delphi für Win32
 
#7
  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

 
Delphi 7 Enterprise
 
#8
  Alt 12. Dez 2004, 17:27
[ot] Ja cool! Subway2Sally ist einfach edel [/ot]
Fabian K.
  Mit Zitat antworten Zitat
Ratte

 
Delphi 2005 Personal
 
#9
  Alt 12. Dez 2004, 17:32
Hi!

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

Ratte
  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 21:33 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz