Autor |
Beitrag |
sn00qy
Hält's aus hier
Beiträge: 2
|
Verfasst: Di 06.04.10 17:02
Hi Forum,
Da ich schon ein bisschen mit delphi programmiert habe,
wollte ich mich mal an etwas größeres setzten, nämlich ein programm, dass musik abspielt, also wav,mp3,wma.
habe zwar den Link hier gefunden www.delphi-treff.de/...infacher-mp3-player/
aber das will bei mir nicht wirklich alles funktionieren
ich bin jetzt mittlerweile soweit, dass mein programm, eine *.wav datei öffnen, abspielen und beenden kann.
Lautstärke regelung hab ich auch hin bekommen.
Was ich noch gerne einfügen würde, wäre ein " Pause " Knopf, und natürlich die unterstützung für mp3.
vielen dank für eure Hilfe,
mein bisheriges Programm sieht so aus
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86: 87: 88: 89: 90: 91: 92: 93: 94: 95: 96: 97: 98: 99: 100: 101: 102: 103: 104: 105: 106: 107: 108: 109: 110: 111: 112: 113: 114: 115: 116: 117: 118: 119: 120: 121: 122: 123: 124: 125: 126: 127: 128: 129: 130: 131: 132: 133: 134: 135: 136: 137: 138: 139: 140: 141: 142: 143: 144: 145: 146: 147: 148: 149: 150: 151: 152: 153: 154: 155: 156: 157: 158:
| unit Unit1;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls,mmsystem, ComCtrls, ExtCtrls, MPlayer;
type TForm1 = class(TForm) Button1: TButton; Label1: TLabel; Label2: TLabel; Button2: TButton; Edit1: TEdit; Button3: TButton; TrackBar1: TTrackBar; Timer1: TTimer; Button4: TButton; OpenDialog1: TOpenDialog; Button5: TButton; Label3: TLabel; Button6: TButton; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Timer1Timer(Sender: TObject); procedure Button4Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure Button5Click(Sender: TObject); procedure Button6Click(Sender: TObject); private public end;
var Form1: TForm1; x,y,tr:integer; str:char;
implementation
{$R *.dfm} procedure GetVolume(var volL, volR: Word); var hWO: HWAVEOUT; waveF: TWAVEFORMATEX; vol: DWORD; begin volL:= 0; volR:= 0; FillChar(waveF, SizeOf(waveF), 0); waveOutOpen(@hWO, WAVE_MAPPER, @waveF, 0, 0, 0); waveOutGetVolume(hWO, @vol); volL:= vol and $FFFF; volR:= vol shr 16; waveOutClose(hWO); end;
procedure SetVolume(const volL, volR: Word); var hWO: HWAVEOUT; waveF: TWAVEFORMATEX; vol: DWORD; begin FillChar(waveF, SizeOf(waveF), 0); waveOutOpen(@hWO, WAVE_MAPPER, @waveF, 0, 0, 0); vol:= volL + volR shl 16; waveOutSetVolume(hWO, vol); waveOutClose(hWO); end;
procedure TForm1.Button1Click(Sender: TObject); var VolLi, VolRe: Word; begin GetVolume(VolLi,VolRe);
Label1.Caption:=IntToStr(VolLi); Label2.Caption:=IntToStr(VolRe); end;
procedure TForm1.Button2Click(Sender: TObject); begin x:= strtoint(edit1.text); setVolume(x,x);
end;
procedure TForm1.Button3Click(Sender: TObject); begin SndPlaySound( Pchar(opendialog1.filename), SND_ASYNC ); end;
procedure TForm1.Timer1Timer(Sender: TObject); begin if trackbar1.position = 0 then x:= 0; if trackbar1.position = 1 then x:= 10000; if trackbar1.position = 2 then x:= 20000; if trackbar1.position = 3 then x:= 30000; if trackbar1.position = 4 then x:= 40000; if trackbar1.position = 5 then x:= 50000; if trackbar1.position = 6 then x:= 60000; if trackbar1.position = 7 then x:= 65000; setVolume(x,x); end;
procedure TForm1.Button4Click(Sender: TObject); begin if y = 0 then begin tr:=trackbar1.position; trackbar1.Position:=0; y:=1; end else begin trackbar1.position:=tr; y:=0; end; end;
procedure TForm1.FormCreate(Sender: TObject); begin y:=0; trackbar1.position:=4; end;
procedure TForm1.Button5Click(Sender: TObject); var text:textfile; begin if opendialog1.execute then begin if fileexists(opendialog1.FileName) then begin label3.caption:=(opendialog1.FileName);
end; end; end;
procedure TForm1.Button6Click(Sender: TObject); begin sndPlaySound(nil,0); end;
end. |
Moderiert von Gausi: Delphi-Tags hinzugefügt.Moderiert von Gausi: Topic aus Delphi Language (Object-Pascal) / CLX verschoben am Di 06.04.2010 um 17:15
|
|
Gausi
      
Beiträge: 8549
Erhaltene Danke: 478
Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
|
Verfasst: Di 06.04.10 17:21
Hallo und  in der Entwickler-Ecke,
Der Weg, den du da jetzt eingeschlagen hast, führt zu nichts. Zumindest nicht mit vertretbarem Aufwand.
Was funktioniert denn bei diesem Tutorial, das du da verlinkt hast, nicht? Ich weiß grade nicht genau, ob beim Delphi-Treff die letzten Änderungen mit berücksichtigt sind, das aktuelle findet man hier. Hast du die benötigtn Zusatzunits und die bass.dll runtergeladen?
_________________ We are, we were and will not be.
|
|
martin300
      
Beiträge: 186
Erhaltene Danke: 2
|
Verfasst: Di 06.04.10 17:21
Hallo,
es gibt mehrere Tutorials. Eines mit der TMediaPlayer Komponente befindet sich auf: www.krazz.net/retnyg...etnyg/tut/mptut2.htm
und wenn das funktioniert, wirst du mit dem anderen auch keine Probleme haben.
|
|
sn00qy 
Hält's aus hier
Beiträge: 2
|
Verfasst: Di 06.04.10 18:17
Hi,
also, bei dem Link vom Delphi-treff funktioniert auf seite 2 dieser Code nicht
procedure TAudioFile.GetMp3Info;
var mpegInfo: TMpegInfo;
ID3v2Tag: TID3V2Tag;
ID3v1tag: TID3v1Tag;
Stream: TFileStream;
Delphi bringt bei mir dann immer bei z.B. "TMpegInfo " die Fehlermeldung " undefinierter Bezeichner"
vielen dank bis jetzt,
hoffe, ihr könnt mir weiterhelfen
gruß
sn00qy
|
|
Gausi
      
Beiträge: 8549
Erhaltene Danke: 478
Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
|
Verfasst: Di 06.04.10 18:25
Dieser Typ (und auch einige andere) sind in der Unit MP3FileUtils definiert. Der Link auf Delphitreff ist wohl nicht mehr gültig, aber so groß ist die Seite nicht, dass man das nicht recht schnell finden könnte. 
_________________ We are, we were and will not be.
|
|
|