AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Kein Sound vom TMediaPlayer
Thema durchsuchen
Ansicht
Themen-Optionen

Kein Sound vom TMediaPlayer

Ein Thema von Drahcir · begonnen am 26. Jul 2012 · letzter Beitrag vom 27. Jul 2012
Antwort Antwort
Seite 1 von 2  1 2      
Drahcir

Registriert seit: 13. Jun 2012
34 Beiträge
 
Delphi 6 Personal
 
#1

Kein Sound vom TMediaPlayer

  Alt 26. Jul 2012, 15:21
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:
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.
Ja ich weiß, es ist wie immer durcheinander und hat sicher noch hunderte Fehler ...
Der ObjektInspektor zur MediaPlayer findet ihr HIER
Es gibt nur 10 Arten von Menschen - die die Binärzahlen lesen können und den Rest
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.754 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Kein Sound vom TMediaPlayer

  Alt 26. Jul 2012, 16:02
Hallo,

vielleicht habe ich es übersehen, aber wo startest Du das Abspielen der Sounddatei.

Ich sehe nirgendwo mediaplayer1.play.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Drahcir

Registriert seit: 13. Jun 2012
34 Beiträge
 
Delphi 6 Personal
 
#3

AW: Kein Sound vom TMediaPlayer

  Alt 26. Jul 2012, 16:06
Hallo,

vielleicht habe ich es übersehen, aber wo startest Du das Abspielen der Sounddatei.

Ich sehe nirgendwo mediaplayer1.play.

Grüße
Klaus
Das mach ich doch indem ich (erstmal) nur auf den Play-Button drücke um zu sehen ob überhaupt sound ausgegeben wird. Sonst könnte an das .Play ja auch in den Button1 setzen, die automatische wiedergabe kann ich ja einbauen wenn der sound da ist

Oder muss ich irgendwo noch definieren was passieren muss wenn ich auf den grünen pfeil drücke?
Es gibt nur 10 Arten von Menschen - die die Binärzahlen lesen können und den Rest
  Mit Zitat antworten Zitat
Horst0815

Registriert seit: 23. Mai 2011
Ort: Görlitz
150 Beiträge
 
Delphi XE Starter
 
#4

AW: Kein Sound vom TMediaPlayer

  Alt 26. Jul 2012, 17:01
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


http://docwiki.embarcadero.com/CodeS...Player_(Delphi)

Geändert von Horst0815 (26. Jul 2012 um 17:11 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von lbccaleb
lbccaleb

Registriert seit: 25. Mai 2006
Ort: Rostock / Bremen
2.037 Beiträge
 
Delphi 7 Enterprise
 
#5

AW: Kein Sound vom TMediaPlayer

  Alt 26. Jul 2012, 17:01
Nimm mal dein mediaplayer.close und .open raus und stell die einstellung autoopen im oi auf true, und schau mal ob es dann geht....
Martin
MFG Caleb
TheSmallOne (MediaPlayer)
Die Dinge werden berechenbar, wenn man die Natur einer Sache durchschaut hat (Blade)
  Mit Zitat antworten Zitat
Drahcir

Registriert seit: 13. Jun 2012
34 Beiträge
 
Delphi 6 Personal
 
#6

AW: Kein Sound vom TMediaPlayer

  Alt 26. Jul 2012, 18:30
Nimm mal dein mediaplayer.close und .open raus und stell die einstellung autoopen im oi auf true, und schau mal ob es dann geht....
Hab ich probiert, Programm startet normal, aber nach Klick auf den Grünen Pfeil tut sich anch wie vor nichts.


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


http://docwiki.embarcadero.com/CodeS...Player_(Delphi)
das weiß ich nicht aber da werd ich gleich auch mal nach googlen ...
Es gibt nur 10 Arten von Menschen - die die Binärzahlen lesen können und den Rest
  Mit Zitat antworten Zitat
Benutzerbild von lbccaleb
lbccaleb

Registriert seit: 25. Mai 2006
Ort: Rostock / Bremen
2.037 Beiträge
 
Delphi 7 Enterprise
 
#7

AW: Kein Sound vom TMediaPlayer

  Alt 26. Jul 2012, 18:41
Nene, da muss nichts eingebunden werden, habs gerade getestet und bei mir läufts mit Delphi 7 ohne Probs!
Martin
MFG Caleb
TheSmallOne (MediaPlayer)
Die Dinge werden berechenbar, wenn man die Natur einer Sache durchschaut hat (Blade)
  Mit Zitat antworten Zitat
Drahcir

Registriert seit: 13. Jun 2012
34 Beiträge
 
Delphi 6 Personal
 
#8

AW: Kein Sound vom TMediaPlayer

  Alt 26. Jul 2012, 20:49
Nene, da muss nichts eingebunden werden, habs gerade getestet und bei mir läufts mit Delphi 7 ohne Probs!
Auch die Wiedergabe der .wav-Datei?
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
Es gibt nur 10 Arten von Menschen - die die Binärzahlen lesen können und den Rest
  Mit Zitat antworten Zitat
Benutzerbild von lbccaleb
lbccaleb

Registriert seit: 25. Mai 2006
Ort: Rostock / Bremen
2.037 Beiträge
 
Delphi 7 Enterprise
 
#9

AW: Kein Sound vom TMediaPlayer

  Alt 26. Jul 2012, 23:40
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 DirectShow
Martin
MFG Caleb
TheSmallOne (MediaPlayer)
Die Dinge werden berechenbar, wenn man die Natur einer Sache durchschaut hat (Blade)
  Mit Zitat antworten Zitat
Horst0815

Registriert seit: 23. Mai 2011
Ort: Görlitz
150 Beiträge
 
Delphi XE Starter
 
#10

AW: Kein Sound vom TMediaPlayer

  Alt 27. Jul 2012, 10:37
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
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 05:42 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