Entwickler-Ecke

Multimedia / Grafik - Datei oeffnen und mit WMP ausgeben?


Chiyoko - Mi 13.01.10 19:09
Titel: Datei oeffnen und mit WMP ausgeben?
Huhu,

wie der Name schon sagt, frage ich mich wie es moeglich ist,
eine datei ueber die combobox(oder was auch immer) einzulesen
und gleich nach der auswahl den Windows Mediaplayer zu oeffnen?!

Combobox mit Inhalt ist kein Problem.
Wie man eine externe Datei oeffnet und startet weis ich auch.(ueber die Processklasse)

Nur wie bewerkstellige ich das gleichzeitig?
D.h. Auswahl->Start von WMP und gleichzeitiges laden des Liedes.

Danke


Chiyoko - Mi 13.01.10 23:13

Problem geloest.
Einfach die Windows API runterladen(das SDK)...
Alles weitere wird da eingehend beschrieben.

http://www.informit.com/articles/article.aspx?p=101752

Dann einfach nur noch per String den Namen auslesen
(finde ich am einfachsten, ..ich nutz eh eine Combobox..)
Ordner festlegen, ...der rest steht hier:


Quelltext
1:
2:
3:
4:
5:
6:
7:
        private void comboBox1cd1_SelectionChangeCommitted(object sender, EventArgs e)
        {
            if (comboBox1cd1.SelectedItem.ToString() == "Prelude")
            {
                axWindowsMediaPlayer1.URL = @"c:\Prelude.mp3";
            }
        }


Nachteil: Zur exe muss eine Lib dazugeliefert werden.




EDIT:
Sofern ich die exe von meinem Rechner starte, funktioniert alles
wunderbar, nur nicht auf anderen Rechnern...

axwindowsmediaplayer.setting.autoplay();
geht i-wie auch nicht,...

Wie bekomm ich das auf anderen Rechnern zum laufen?


danielf - Do 14.01.10 11:27

Hallo,

was heißt es funktioniert nicht auf anderen Rechnern? Was liefster du mit (Deine exe, WMP exe und die WMP Dll)?

Gruß Daniel


Chiyoko - Do 14.01.10 14:58

Naja, die Exe und die 2 dll dateien, die zum Mediaplayer gehoeren.

Das Mediaplayer SDK ist von Version 9 und meine windows media player version
ist auch 9.0.0.1.

Wmp exe??Eigentlich nahm ich an, es muss nur die gleiche Version auf den anderen
Rechnern vorhanden sein(OS unabhaengig, muesste mit Vista,Xp und windows 7
funktionieren).

Oh und was nicht funktioniert haett ich fast vergessen:

1) Laden des Liedes funktioniert.
2) Danach steht dort nur: Bereit...
3) Ich hab 2 Rechner, kann das also schnell testen

autostart funktioniert auch nicht, und wenn ich es ueber einen
Dialog versuche:


Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
 private void button1_Click(object sender, EventArgs e)
        {
            AxWMPLib.AxWindowsMediaPlayer wmp1 = new AxWMPLib.AxWindowsMediaPlayer();
            string fname = "";
            OpenFileDialog dlg = new OpenFileDialog();
            dlg.Filter = "Sound files(*.mp3)|*.mp3|Wave Files(*.wav)|*.wav|All Files|*.*";
            dlg.FilterIndex = 1;
            if (dlg.ShowDialog() == DialogResult.OK)
                fname = dlg.FileName;
            wmp1.Ctlcontrols.stop();
            wmp1.settings.autoStart = true;
            wmp1.URL = fname;
        }


dannn bekomm ich nach dem laden einen Error.


danielf - Do 14.01.10 15:01

Und ganz banal: @"c:\Prelude.mp3"; existiert auf beiden Rechnern?


Chiyoko - Do 14.01.10 15:03

Nein, aber darueber hab ich auch schon nachgedacht...
nur hab ich mich gefragt...muss das unbedingt dort sein?
Weil das Lied befindet sich ja in der Exe.

EDIT:
Ich probiers trozdem erstmal aus:)danke..

Aber da kann nicht die Loesung sein.


Mhmpf...funktioniert,...aber gibt es nicht noch einen internen Speicherpfad zufaellig?
Ohne, das diese unbedingt in einem bestimmten Ordner liegen muessen?


Chiyoko - Fr 15.01.10 18:06

So, ok

@"\Prelude.mp3";
->relativer Pfad..

Nun wieder ein problem, ...ich habe meinen Media player auf version 11 gebracht,
mir das SDK gezogen...aber es geht nicht,...gibt es da andere Schritte?
Meine Versuche scheiterten allesamt.


jaenicke - Fr 15.01.10 22:35

user profile iconChiyoko hat folgendes geschrieben Zum zitierten Posting springen:
@"\Prelude.mp3";
->relativer Pfad..
Ja, relativ. Aber nicht zum Verzeichnis der Exe sondern zum aktuellen Arbeitsverzeichnis, ich hoffe das ist dir klar...


Chiyoko - So 14.03.10 14:10

Danke, auch das Problem habe ich geloest.

beispiel:

C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
DirectoryInfo dir = new DirectoryInfo(Path.Combine(Application.StartupPath, (@"Bilder\FF7\Music\cd1")));

                FileInfo[] files = dir.GetFiles("*.mid");

                foreach (FileInfo file in files) {
                    listView1.Items.Add(file.Name);
                }