Entwickler-Ecke

Sonstiges (Delphi) - Procedure bei Mediaplayer


Apo95 - So 15.04.12 22:13
Titel: Procedure bei Mediaplayer
Hallo,

ich habe versucht, winwn Mediaplayer in Delphi 6 zu kritzeln, aber der Compiler gbt eine Fehlermeldung heraus, aus der ich nie und nimmer schlau werde. :-(

Hier ist der Quellcode :


Delphi-Quelltext
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:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, MPlayer, Menus, ComCtrls, StdCtrls, ExtCtrls;

type
  TForm1 = class(TForm)
    MediaPlayer1: TMediaPlayer;
    MainMenu1: TMainMenu;
    Datei1: TMenuItem;
    Neu1: TMenuItem;
    Wiedergabe1: TMenuItem;
    N1: TMenuItem;
    Beenden1: TMenuItem;
    Media1: TMenuItem;
    StartenWiedergabe1: TMenuItem;
    Pause1: TMenuItem;
    AbbruchWiedergabe1: TMenuItem;
    Zurck1: TMenuItem;
    Vorwrts1: TMenuItem;
    N6sPRINGEN1: TMenuItem;
    Ende1: TMenuItem;
    Anfang1: TMenuItem;
    N2: TMenuItem;
    N3: TMenuItem;
    RecordAufnahmestarten1: TMenuItem;
    Hilfe1: TMenuItem;
    Informationeneinblenden1: TMenuItem;
    ProgressBar1: TProgressBar;
    CheckBox1: TCheckBox;
    Timer1: TTimer;
    Panel1: TPanel;
    OpenDialog1: TOpenDialog;
    SaveDialog1: TSaveDialog;
    Liste1: TMenuItem;
    Neu2: TMenuItem;
    Hinzufgen1: TMenuItem;
    AusListeentfernen1: TMenuItem;
    N4: TMenuItem;
    InDateisichern1: TMenuItem;
    Einlesen1: TMenuItem;
    ListBox1: TListBox;
    procedure Beenden1Click(Sender: TObject);
    procedure Informationeneinblenden1Click(Sender: TObject);
    procedure Einlesen1Click(Sender: TObject);
    procedure InDateisichern1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure StartenWiedergabe1Click(Sender: TObject);
    procedure AbbruchWiedergabe1Click(Sender: TObject);
    procedure Neu2Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
  Song : Integer;
  
implementation

uses Unit2;

{$R *.dfm}

procedure TForm1.Beenden1Click(Sender: TObject);
begin
        close;
end;

procedure TForm1.Informationeneinblenden1Click(Sender: TObject);
begin
        AboutBox.show;
end;

procedure TForm1.Einlesen1Click(Sender: TObject);
begin
        if Opendialog1.Execute then
        begin
        ListBox1.Items.add(OpenDialog1.FileName);
        
end;

procedure TForm1.InDateisichern1Click(Sender: TObject);
begin
        if SaveDialog1.Execute then
        begin
        ListBox1.Items.SaveToFile(SaveDialog1.FileName);
        end
        else
        Application.MessageBox('Die Wiedergabeliste konnte nicht erstellt werden. Bitte überprüfen sIe ihre Rechte un versuchen es erneut.','Sicherung fehlgeschlagen', mb_ICONSTOP or mb_OK);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
        Song :=0;
end;

procedure TForm1.StartenWiedergabe1Click(Sender: TObject);
begin
        MediaPlayer1.Open;
        ProgressBar1.Max := MediaPlayer1.Length;
        MediaPlayer1.FileName := ListBox1.Items[song];
        Timer1.Enabled :=true;
end;

procedure TForm1.AbbruchWiedergabe1Click(Sender: TObject);
begin
        MediaPLayer1.Close;
        ListBox1.Clear;
        Song :=0;
end;

procedure TForm1.Neu2Click(Sender: TObject);
begin
        if Application.MessageBox('Möchten Sie eine neue Wiedergabeliste anlegen? Sie sollten, sofern vorhnden, alle Änderungen sichern.','Neue Liste',mb_ICONWARNING or mb_YESNO)=IDYES
        then
        ListBox1.Items.Clear;
        MediaPlayer1.Close;
        Song :=0;
end;

end.


Die Fehlermeldung lautet: 'Anweisung erwartet, aber 'PROCEDURE' gefunden'.

Kann mir jemand weiterhelfen??

Ich brauche so schnell wie möglich Hilfe!!

Moderiert von user profile iconMartok: Delphi-Tags hinzugefügt


SvenAbeln - So 15.04.12 22:24


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
procedure TForm1.Einlesen1Click(Sender: TObject);
begin
  if Opendialog1.Execute then
  begin
    ListBox1.Items.add(OpenDialog1.FileName);        
end;
Hier ist ein begin zu viel, oder ein end zu wenig.

So sollte es gehen:

Delphi-Quelltext
1:
2:
3:
4:
5:
procedure TForm1.Einlesen1Click(Sender: TObject);
begin
  if Opendialog1.Execute then
    ListBox1.Items.add(OpenDialog1.FileName);        
end;


Apo95 - Mo 16.04.12 02:13

Das funktioniert nicht. Die Kompilierung schlägt fehl; es wird eine Exception ausgelöst. Die Meldung lautet : 'Eception EMCIDevice Error bei EAMPLAYER.exe bei 005280. Kann keinen Gerätetyp aus der angegebenen Dateinamenserweiterung erkennen.'

Ich weiß nicht mehr weiter...


jaenicke - Mo 16.04.12 06:20

Wenn du eine .wav, .mid, .avi, .mpg oder .mov Datei auswählst, für die der TMediaPlayer ja z.B. gedacht ist, sollte das eigentlich gehen. :gruebel:
Was war denn das für eine Datei, also welcher Dateiname?

Hier findest du übrigens eine Liste der unterstützten Typen:
http://docwiki.embarcadero.com/RADStudio/en/Adding_Audio_or_Video_Clips_to_an_Application

Für andere Dateitypen bieten sich entweder das Windows Media Player Control an, das du in Delphi als Komponente importieren kannst, oder die BASS DLL [http://www.un4seen.com/bass.html].


Apo95 - Mo 16.04.12 16:35

Vielen Dank für eure Antworten. Ich habe den Mediaplayer in das Format von Delphi 2009 konvertiert; hoffe, jetzt klappts...

:-)


Delete - Mo 16.04.12 17:10

Die Reihenfolge ist FALSCH:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
procedure TForm1.StartenWiedergabe1Click(Sender: TObject);
begin
        MediaPlayer1.Open;
        ProgressBar1.Max := MediaPlayer1.Length;
        MediaPlayer1.FileName := ListBox1.Items[song];
        Timer1.Enabled :=true;
end;


Richtig - erst File auswählen bzw. zuordnen, dann öffnen:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
procedure TForm1.StartenWiedergabe1Click(Sender: TObject);
begin
        MediaPlayer1.FileName := ListBox1.Items[song];
        MediaPlayer1.Open;
        ProgressBar1.Max := MediaPlayer1.Length;
        Timer1.Enabled :=true;
end;