Autor |
Beitrag |
retnyg
Beiträge: 2754
SNES, GB, GBA, CPC, A500, 486/66, P4/3.0HT: NintendOS, AmigaOS, DoS
Delphi 5, Delphi 7
|
Verfasst: Do 18.08.05 00:58
wie wärs hiermit VOLUME DELPHI
_________________ es gibt leute, die sind genetisch nicht zum programmieren geschaffen.
in der regel haben diese leute die regel...
|
|
F34r0fTh3D4rk
Beiträge: 5284
Erhaltene Danke: 27
Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
|
Verfasst: Do 18.08.05 15:33
dabei wird ja die systemlautstärke verändert, da kann man bissl was um schreiben, aber ist es das gleiche, wie zb bei winamp ?
angenommen, ich start meinen mp3 player und den windows media player, lasse beide abspielen und mache meinen leiser, dann sollte eigentlich der wmp immer noch so laut sein wie vorher, sonst ergibt das für mich keinen sinn
|
|
Ironwulf
Beiträge: 733
Erhaltene Danke: 2
|
Verfasst: Do 18.08.05 15:48
sry das ich euch grad unterbrech,
ich hab das tut mal mit delphi 3 probiert und mit delphi 6
in delphi 3 kommt ein fehler das die liste das maximum überschreitet, in der 6 nicht
worin liegt da der unterschied, denn das einzigste was sich im code ändert ist das delphi3 nicht mit der variants uses anfang kann und man listbox1.count in listbox1.items.count ändern müsste oder irr ich mich da ein wenig?
|
|
F34r0fTh3D4rk
Beiträge: 5284
Erhaltene Danke: 27
Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
|
Verfasst: Do 18.08.05 16:05
kannst du so lassen, aber es müsste count - 1 sein denke ich
|
|
retnyg
Beiträge: 2754
SNES, GB, GBA, CPC, A500, 486/66, P4/3.0HT: NintendOS, AmigaOS, DoS
Delphi 5, Delphi 7
|
Verfasst: Do 18.08.05 16:17
nein, für delphi 5 und höher stimmt das schon mit count
die abrage ist ja if < count
möglicherweise fängt aber bei delphi 3 die indizierung bei der listbox mit 1 und nicht null an, oder count liefert ein anderes ergebnis als bei neueren delphis ?
(das solltest du überprüfen, ich habe kein delphi 3)
der fehler kann eigentlich nur hier auftreten:
Delphi-Quelltext 1:
| Listbox1.Selected[currentSong] := false; |
falls currentsong einen index hätte der grösser als die anzahl der einträge hätte.
_________________ es gibt leute, die sind genetisch nicht zum programmieren geschaffen.
in der regel haben diese leute die regel...
|
|
X-0tic
Hält's aus hier
Beiträge: 3
Windoof EcksPeh
D7 EP
|
Verfasst: Sa 17.09.05 13:34
Schade, mit *.pls-Dateien scheint das ja nicht so wirklich zu funzen oder doch?
|
|
retnyg
Beiträge: 2754
SNES, GB, GBA, CPC, A500, 486/66, P4/3.0HT: NintendOS, AmigaOS, DoS
Delphi 5, Delphi 7
|
Verfasst: Sa 17.09.05 15:03
X-0tic hat folgendes geschrieben: | Schade, mit *.pls-Dateien scheint das ja nicht so wirklich zu funzen oder doch? |
meinst du damit dass man sich nicht zu einem shoutcast stream verbinden kann ?
oder hast du probleme bei der implementierung des pls-formats ?
_________________ es gibt leute, die sind genetisch nicht zum programmieren geschaffen.
in der regel haben diese leute die regel...
|
|
X-0tic
Hält's aus hier
Beiträge: 3
Windoof EcksPeh
D7 EP
|
Verfasst: Sa 17.09.05 20:07
Ja, ich meine, dass es damit wohl nicht möglich ist zu einem ShoutCastServer zu verbinden oder?
|
|
retnyg
Beiträge: 2754
SNES, GB, GBA, CPC, A500, 486/66, P4/3.0HT: NintendOS, AmigaOS, DoS
Delphi 5, Delphi 7
|
Verfasst: Sa 17.09.05 23:03
X-0tic hat folgendes geschrieben: | Ja, ich meine, dass es damit wohl nicht möglich ist zu einem ShoutCastServer zu verbinden oder? |
nein, das ist mit dem TMediaPlayer leider nicht möglich. der TMediaPlayer kann auch keine dateien öffnen, die gerade von einem anderen Programm geschrieben werden (wie z.b. mein shoutcast-ripper MP3PROXY).
es geht aber mit den windows acm subsystem, allerdings muss zuerst der acm mp3 codec von fraunhofer institut installiert sein (ist bei WMP 10 dabei).
eine unit dafür findest du auf www.thaddy.com
_________________ es gibt leute, die sind genetisch nicht zum programmieren geschaffen.
in der regel haben diese leute die regel...
|
|
X-0tic
Hält's aus hier
Beiträge: 3
Windoof EcksPeh
D7 EP
|
Verfasst: So 18.09.05 01:06
Irgendwie UfFfF.... Danke.
|
|
MKX
Beiträge: 95
Win XP, Ubuntu Linux 7.02
Delphi 3 Prof., Delphi 2005 PE
|
Verfasst: Do 29.09.05 20:53
Das Tutorial hat mir sehr geholfen!
Aber wenn der Mediaplayer den nächsten Eintrag der Playliste abspielen soll endet das mit der Exception: Der Index der Liste überschreitet das Maximum(0) Was kann ich machen, damit das Programm funktioniert?
[Edit]Der selbe fehler wie bei allen anderen. Was kann man trotz Delphi3 machen?
|
|
Krumnix
Beiträge: 60
Win98,2000,XP
Delphi 7 Enterprise
|
Verfasst: Do 13.10.05 16:30
So, hier mal was für die Lautstärke.
!!Ändert die Lautstärke über WAV, was WinAmp auch macht. Deswegen meint man, das der
Rest vom System weiterhin gleichlaut bleibt, weil man da ja ggf. keine Sounds über WAV abspielt. Der Player hier arbeitet aber über WAV.!!
Liefert die im System eingestellte Lautstärke von WAV zurück:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| function TForm1.GetWaveVolume(var GVolume: word): Boolean; var WaveOutCaps: TWAVEOUTCAPS; Volume: DWORD; begin Result := False; if WaveOutGetDevCaps(WAVE_MAPPER, @WaveOutCaps, SizeOf(WaveOutCaps)) = MMSYSERR_NOERROR then if WaveOutCaps.dwSupport and WAVECAPS_VOLUME = WAVECAPS_VOLUME then begin Result := WaveOutGetVolume(WAVE_MAPPER, @Volume) = MMSYSERR_NOERROR; GVolume := LoWord(Volume); end; end; |
Setzt die Lautstärke von WAV (ACHTUNG: nur bis max. 65535!!)
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8:
| function TForm1.SetWaveVolume(const AVolume: DWORD): Boolean; var WaveOutCaps: TWAVEOUTCAPS; begin Result := False; if WaveOutGetDevCaps(WAVE_MAPPER, @WaveOutCaps, SizeOf(WaveOutCaps)) = MMSYSERR_NOERROR then if WaveOutCaps.dwSupport and WAVECAPS_VOLUME = WAVECAPS_VOLUME then Result := WaveOutSetVolume(WAVE_MAPPER, AVolume) = MMSYSERR_NOERROR; end; |
Aufruf der Funktionen:
Delphi-Quelltext 1: 2: 3: 4:
| ScrollBar1.Min := 0; ScrollBar1.Max := 65535 if GetWaveVolume(Lautstaerke) then ScrollBar1.Position := Lautstaerke; |
Delphi-Quelltext 1:
| SetWaveVolume(ScrollBar1.Position); |
_________________ Kommt Zeit kommt Rat.... In der Tat
Ich kann mehr auswendig als ich mir merken kann.
|
|
retnyg
Beiträge: 2754
SNES, GB, GBA, CPC, A500, 486/66, P4/3.0HT: NintendOS, AmigaOS, DoS
Delphi 5, Delphi 7
|
Verfasst: Do 13.10.05 16:41
uses mmsystem nicht vergessen.
_________________ es gibt leute, die sind genetisch nicht zum programmieren geschaffen.
in der regel haben diese leute die regel...
|
|
Fisheye
Hält's aus hier
Beiträge: 11
|
Verfasst: So 08.01.06 05:52
Ich wolllte das Programm nochmal unter Delphi 2005 basteln.
// Edit : Hat sich erledigt
Ich habe ein Problem mit der Drag und Drop funkiton.
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
| Procedure TForm1.WMDropFiles (Var aMsg: tMessage); Var Idx, Size, FileCount: Integer; Filename: pChar; Begin Inherited; FileCount := DragQueryFile (aMsg.WParam, $FFFFFFFF, nil, 255); For Idx := 0 To FileCount -1 Do Begin Size := DragQueryFile (aMsg.WParam, Idx, nil, 0) + 1; Filename := StrAlloc (Size); If DragQueryFile (aMsg.WParam, Idx, Filename, Size) = 1 Then else AddToPlayList (pChar (Filename)); StrDispose (Filename); End; DragFinish (aMsg.WParam); End; |
Die Procedure steht unter Public, Drag und Drop ist akzeptuert und die ShellApi klausel ist auch drin.
Ich bekommt folgende Fehler
[Fehler] Unit1.pas(42): E2410 Unsichere Zeigervariablen, Parameter oder Konstanten sind nur in unsicheren Prozeduren zulässig
[Fehler] Unit1.pas(4 : E2003 Undefinierter Bezeichner: 'StrAlloc'
[Fehler] Unit1.pas(49): E2010 Inkompatible Typen: 'StringBuilder' und 'PWideChar'
[Fehler] Unit1.pas(50): E2010 Inkompatible Typen: 'string' und 'PWideChar'
Wodran könnt das liegen ?
|
|
death-adders
Beiträge: 82
Vista
Turbo Delphi Explorer
|
Verfasst: Sa 14.01.06 12:00
Hi @ all, ich habe das wie im tutorial beschrieben gemacht, is ja auch ganz simpel, so sieht mein quelltext 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:
| unit Unit1;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, MPlayer;
type TForm1 = class(TForm) MediaPlayer1: TMediaPlayer; Button1: TButton; procedure Button1Click(Sender: TObject); private public end;
var Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject); begin mediaplayer1.FileName := 'C:\mugge'; mediaplayer1.Open; end;
end. |
Aber mein klick auf button 1 kommt folgende Fehlermeldung:
|
|
papa_s
Hält's aus hier
Beiträge: 1
WIN XP, WIN 2000,
Delphi 7 Personal
|
Verfasst: So 22.01.06 22:36
Titel: Den Titel Stoppen
Hallo !
Erstmal Danke für das Tutorial ! Bin Newbie im Programmieren, aber das war genau das was ich suchte.
Jetzt meine Frage : Wenn der Button CLick den Titel startet, wie kann ich den dann per weiterem Klick auf den Button Stoppen ? Also :
1. Klick Start *.mp3
2. Klick Stopp *.mp3
Wäre schön, wenn mir jemand einfach helfen könnte !
mfg
papa_s
|
|
retnyg
Beiträge: 2754
SNES, GB, GBA, CPC, A500, 486/66, P4/3.0HT: NintendOS, AmigaOS, DoS
Delphi 5, Delphi 7
|
Verfasst: Mi 25.01.06 11:23
Titel: Re: Den Titel Stoppen
@death-adders: 'C:\mugge' ist ein ordner oder ? du musst einen gültigen DATEInamen übergeben, der mit .mp3 endet
papa_s hat folgendes geschrieben: | Hallo !
Erstmal Danke für das Tutorial ! Bin Newbie im Programmieren, aber das war genau das was ich suchte.
Jetzt meine Frage : Wenn der Button CLick den Titel startet, wie kann ich den dann per weiterem Klick auf den Button Stoppen ? Also :
1. Klick Start *.mp3
2. Klick Stopp *.mp3
Wäre schön, wenn mir jemand einfach helfen könnte !
mfg
papa_s |
Mediaplayer1.stop;
übrigens: wenn du mediaplayer1. schreibst und kurz wartest, klappt eine liste der möglichen Befehle auf, die du mit den cursortasten durchschauen kannst.
_________________ es gibt leute, die sind genetisch nicht zum programmieren geschaffen.
in der regel haben diese leute die regel...
|
|
death-adders
Beiträge: 82
Vista
Turbo Delphi Explorer
|
Verfasst: Fr 27.01.06 16:03
Titel: Re: Den Titel Stoppen
retnyg hat folgendes geschrieben: | @death-adders: 'C:\mugge' ist ein ordner oder ? du musst einen gültigen DATEInamen übergeben, der mit .mp3 endet
papa_s hat folgendes geschrieben: | Hallo !
Erstmal Danke für das Tutorial ! Bin Newbie im Programmieren, aber das war genau das was ich suchte.
Jetzt meine Frage : Wenn der Button CLick den Titel startet, wie kann ich den dann per weiterem Klick auf den Button Stoppen ? Also :
1. Klick Start *.mp3
2. Klick Stopp *.mp3
Wäre schön, wenn mir jemand einfach helfen könnte !
mfg
papa_s |
Mediaplayer1.stop;
übrigens: wenn du mediaplayer1. schreibst und kurz wartest, klappt eine liste der möglichen Befehle auf, die du mit den cursortasten durchschauen kannst. |
OK, es hat gefuntzt, das mit dem pfad war schon richtig, es fehlte nur das ".mp3" Aber andere Formate unterstützt der mediaplayer nicht?
|
|
Silence
Beiträge: 58
Win XP Prof
Delphi 7
|
Verfasst: Mi 22.03.06 18:18
Hi, ich hab ein problem mit der playliste und zwar wenn ich auf eine datei die da drinnen ist klicke dann passiert rein garnichts. ich habs genau so gemacht wie es im tutorial stand
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:
| unit Unit1;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, MPlayer, ShellApi;
type TForm1 = class(TForm) MediaPlayer1: TMediaPlayer; Button1: TButton; ListBox1: TListBox; procedure Button1Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure FormDestroy(Sender: TObject); procedure ListBox1Click(Sender: TObject); private public Procedure AddToPlayList(s:string); procedure PlayFile(s:string); Procedure WMDropFiles (Var aMsg: tMessage); message WM_DROPFILES; end;
var Form1: TForm1; playList: TStringList;
implementation
{$R *.dfm}
Procedure TForm1.WMDropFiles (Var aMsg: tMessage); Var Idx, Size, FileCount: Integer; Filename: pChar; Begin Inherited; FileCount := DragQueryFile (aMsg.WParam, $FFFFFFFF, nil, 255); For Idx := 0 To FileCount -1 Do Begin Size := DragQueryFile (aMsg.WParam, Idx, nil, 0) + 1; Filename := StrAlloc (Size); If DragQueryFile (aMsg.WParam, Idx, Filename, Size) = 1 Then else AddToPlayList (pChar (Filename)); StrDispose (Filename); End; DragFinish (aMsg.WParam); End;
Procedure TForm1.AddToPlayList(s:string); begin playList.Add(s); ListBox1.Items.Add(s); end;
procedure TForm1.Button1Click(Sender: TObject); begin mediaplayer1.FileName := 'F:\Musik\bloodhound gang\bloodhound gang - your pretty when im drunk.mp3'; mediaplayer1.Open; mediaplayer1.play; end;
procedure TForm1.FormCreate(Sender: TObject); begin DragAcceptFiles (Handle, True); playList := TStringList.Create; end;
procedure TForm1.FormDestroy(Sender: TObject); begin playList.Free; end;
procedure TForm1.PlayFile(s:string); begin mediaplayer1.Close; mediaplayer1.FileName := s; mediaplayer1.Open; mediaplayer1.play; end;
procedure TForm1.ListBox1Click(Sender: TObject); var i : integer; begin for i := 0 to listbox1.Count - 1 do if listbox1.Selected[i] then break; if fileexists(Playlist.Strings[i]) then PlayFile(Playlist.Strings[i]); end;
end. |
wo liegt denn da der fehler?
|
|
Death666Metal
Beiträge: 22
Win XP
Delphi 7/html/php/flash/basic/c++
|
Verfasst: Fr 26.05.06 21:59
Titel: Automatisches Abspielen einer MP3 beim Öffnen von Programm?
Hi!
Ma ne Frage. Wie schreibt man das automatisch beim Öffnen der "programm.exe" eine MP3-Datein abgespielt wird?
Muss man da im Objekt-Inspektor bei der TForm1 irgendwo etwas eingeben oder also procedure oder???
Ich hoffe ihr versteht was ich meine....
Jetzt schon RIESEN THX!!!!!
|
|
|