![]() |
Kein Sound vom TMediaPlayer
Ja ich weiß die frage nach dem Media-Player zum Abspielen von .wav-Dateien gab es schon hunderte male, aber da mein Programm nicht funktioniert, obwohl ich es nach diversen Tutorials nachgemacht und verglichen habe, möchte ich hier mal fragen ob wer den fehler findet.
Das Programm ist eigentlich eine normale Eieruhr, die stündlich nen Sound (Plinfa.wav) ausgeben soll. Dazu ne nette Animation, nen Bild (Image2) das sich auf und ab bewegt, dazu der Hintergrund (Image1). Ausserdem soll das ganze in die systemTray (wenn man das so nennt) minimierbar sein. Das Programm funktioniert einwandfrei (Timer, Animation, minimieren und wiederherstellen) aber der MediaPlayer macht mir Probleme. Die .wav-Datei liegt im Ordner wo das Programm ist und wird (anscheinend) ordnungsgemäß geladen, nur das wenn ich dann erst auf den button und dann im MediaPlayer auf "Play" drücke passiert nichts, ich höre zumindest keinen Sound. Weiß wer warum?
Delphi-Quellcode:
Ja ich weiß, es ist wie immer durcheinander und hat sicher noch hunderte Fehler ...
unit mPinguTimer;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, jpeg, StdCtrls, ShellAPI, Menus, mmSystem, Buttons, MPlayer, ShlObj; type TfrmMain = class(TForm) Label1: TLabel; Timer1: TTimer; Image2: TImage; Image1: TImage; btReset: TButton; Timer2: TTimer; SpeedButton1: TSpeedButton; Label2: TLabel; SpeedButton2: TSpeedButton; Button1: TButton; MediaPlayer1: TMediaPlayer; procedure FormDestroy(Sender: TObject); procedure FormCreate(Sender: TObject); procedure Timer1Timer(Sender: TObject); procedure Image2Click(Sender: TObject); procedure btResetClick(Sender: TObject); procedure Timer2Timer(Sender: TObject); procedure SpeedButton1Click(Sender: TObject); procedure SpeedButton2Click(Sender: TObject); procedure Button1Click(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); private h, Minuten, Sekunden : Integer; t : Real; Lautlos : Boolean; TaskBarNewReg : DWORD; IconData: TNotifyIconData; public procedure WndProc(var Msg: TMessage); override; procedure WMSysCommand(var Message: TWMSysCommand); message WM_SYSCOMMAND; end; var frmMain: TfrmMain; implementation {$R *.dfm} procedure TfrmMain.WndProc(var Msg: TMessage); var Point: TPoint; begin // WM_USER + 20 ist unsere TNA Icon Nachricht if Msg.Msg = WM_USER + 20 then begin // im lParam steht die Nachricht case Msg.lParam of // linke Taste WM_RBUTTONDOWN: begin MessageDLG('Restzeit: ' + Formatfloat('00', Minuten) + ':' + Formatfloat('00', Sekunden), mtInformation, [mbOk], 0); end; // Doppelklick WM_LBUTTONDBLCLK: begin // Fenster anzeigen frmMain.Show; // Icon entfernen Shell_NotifyIcon(NIM_DELETE, @IconData); end; end; end // Taskbar wurde im System registriert, Icon einfügen else if Msg.Msg = TaskBarNewReg then begin Shell_NotifyIcon(NIM_ADD, @IconData); end; inherited; end; procedure TfrmMain.WMSysCommand(var Message: TWMSysCommand); begin // Fenster wurde minimiert if Message.CmdType and $FFF0 = SC_MINIMIZE then begin Hide; // Icon in der TNA anzeigen Shell_NotifyIcon(NIM_ADD, @IconData); end else inherited; end; procedure TfrmMain.FormDestroy(Sender: TObject); begin Shell_NotifyIcon(NIM_DELETE, @IconData); end; //***************************************************************************** procedure TfrmMain.Timer1Timer(Sender: TObject); var Faktor : Integer; begin Faktor := 10; if t >= (Faktor*2) then t := 0; t := t + 0.5; h := round( -( (t-Faktor)*(t-Faktor) ) + Faktor*Faktor); Image2.Top := 150 - h; end; procedure TfrmMain.FormCreate(Sender: TObject); begin frmMain.DoubleBuffered := True; //******************************* // Message ID für Message merken, die gesendet wird, wenn die Taskbar im // System registriert wird. TaskBarNewReg := RegisterWindowMessage('TaskbarCreated'); // IconData Struktur füllen IconData.cbSize := SizeOf(IconData); IconData.Wnd := Handle; IconData.uID := 100; IconData.uFlags := NIF_MESSAGE + NIF_ICON + NIF_TIP; IconData.uCallBackMessage := WM_USER + 20; IconData.hIcon := Application.Icon.Handle; IconData.szTip := 'Pingu-Timer'; // Icon einfügen. Bei Bedarf sofort //Shell_NotifyIcon(NIM_ADD, @IconData); end; procedure TfrmMain.Image2Click(Sender: TObject); begin t := 0; Minuten := 60; Sekunden := 00; Timer2.Enabled := true; Timer1.Enabled := true; Image2.Enabled := false; btReset.Enabled := true; end; procedure TfrmMain.btResetClick(Sender: TObject); begin btReset.Enabled := false; Label1.Caption := 'Klick auf den Pingu zum Starten'; Image2.Enabled := true; Timer1.Enabled := false; Timer2.Enabled := false; Image2.Top := 150; end; procedure TfrmMain.Timer2Timer(Sender: TObject); begin if Sekunden <> 0 then Sekunden := Sekunden - 1 else begin if Minuten <> 0 then begin Minuten := Minuten - 1; Sekunden := 59; end else begin Minuten := 59; Sekunden := 59; if Lautlos = false then MessageBeep(MB_ICONEXCLAMATION); end; end; Label1.Caption := 'Verbleibende Zeit: ' + Formatfloat('00', Minuten) + ':' + Formatfloat('00', Sekunden); end; procedure TfrmMain.SpeedButton1Click(Sender: TObject); begin if Lautlos = true then begin Lautlos := false; SpeedButton1.Caption := 'Ton ist an' end else begin Lautlos := true; SpeedButton1.Caption := 'Ton ist aus' end; end; procedure TfrmMain.SpeedButton2Click(Sender: TObject); begin Messagedlg('Musik: Pokémon Plinfa'#13'Bilder sind dem Spiel NosTale.de entnommen', mtInformation, [mbOk], 0); end; procedure TfrmMain.Button1Click(Sender: TObject); begin MediaPlayer1.Close; mediaplayer1.Open; end; procedure TfrmMain.FormClose(Sender: TObject; var Action: TCloseAction); begin mediaplayer1.Close; end; end. Der ObjektInspektor zur MediaPlayer findet ihr ![]() |
AW: Kein Sound vom TMediaPlayer
Hallo,
vielleicht habe ich es übersehen, aber wo startest Du das Abspielen der Sounddatei. Ich sehe nirgendwo mediaplayer1.play. Grüße Klaus |
AW: Kein Sound vom TMediaPlayer
Zitat:
Oder muss ich irgendwo noch definieren was passieren muss wenn ich auf den grünen pfeil drücke? |
AW: Kein Sound vom TMediaPlayer
ist schon ewig her, aber soweit ich mich errinnern kann musst du die buttons noch einbinden. bin noch mit dem smartphone auf arbeit und kann da jetzt nich weiter suchen
![]() |
AW: Kein Sound vom TMediaPlayer
Nimm mal dein mediaplayer.close und .open raus und stell die einstellung autoopen im oi auf true, und schau mal ob es dann geht....
|
AW: Kein Sound vom TMediaPlayer
Zitat:
Zitat:
|
AW: Kein Sound vom TMediaPlayer
Nene, da muss nichts eingebunden werden, habs gerade getestet und bei mir läufts mit Delphi 7 ohne Probs!
|
AW: Kein Sound vom TMediaPlayer
Zitat:
Und wieso geht es denn dann bei mir nicht :( Kann es sein das, dass Delphi meine Soundkarte nicht ansprechen kann oder so? Wäre ja denkbar das das Abspielen an sich funktioniert nur die Weitergabe des Sounds an die Boxen bzw. an das Headset nicht klappt ... Ich hoffe auf weitere Hilfen oder Ideen :| |
AW: Kein Sound vom TMediaPlayer
Nee das glaub ich nicht das nur Delphi keinen Sound ausgibt. Probiere mal andere Datei Formate mit dem MediaPlayer abzuspielen, vllt gibts dort nen Codec Problem.
Alternativ könntest du auch einfach was anderes nehmen, über Bass oder ![]() |
AW: Kein Sound vom TMediaPlayer
versuch mal eine ander wav datei ich meine mich zu errinnern das es mit einzelnen dateien probleme beim abspielen gab. ausserdem solltest du sicherstellen das die datei wirklich geladen wird. bin leider wieder auf arbeit schau es mir heut nachmittag aber mal an. ausserdem solltest du dir mal die NEWAC komponente anschauen die ziemlich gut ist
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:01 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 by Thomas Breitkreuz