Laden...

Sound Wiedergabe (.asx Datei; per Mediaplayer?) (möglichst direkt aus den Ressourcen)

Erstellt von Crone vor 12 Jahren Letzter Beitrag vor 12 Jahren 2.462 Views
C
Crone Themenstarter:in
168 Beiträge seit 2010
vor 12 Jahren
Sound Wiedergabe (.asx Datei; per Mediaplayer?) (möglichst direkt aus den Ressourcen)

Hallo zusammen,

Ich habe folgendes Probelem...

Ich würde gerne eine sounddatei im format(.asx) abspielen. Jedoch ist es standartmäßig nur möglich wav dateien abzuspielen.

Ich habe in mein Programm die Windows Mediaplayer oberfläche bzw libarys usw. genommen per Element zur Toolbox hinzufügen.

Der Windows Mediaplayer gibt die datei ohne probleme wieder.

Das problem ist ich würde gerne die Windows Mediaplayer oberfläche nicht nutzen aber dennoch die Datei abspielen können. Wie kann ich dies erreichen.

Was ich aber auch noch gerne wissen würde ist wie man ein Sound aus den properties läd für den Windows Mediaplayer.

Der folgende Befehl funktioniert leider nicht.

nameDesMediaPlayerObjekts.URL = Properties.Resources.dateiName;

Mit diesen befehl klappts wunderbar, jedoch wird der Sound dann nicht aus den Properties geladen.

nameDesMediaPlayerObjekts.URL = "C:\\Users\\Marcel\\Musik\\dateiName.asx";

Ich hoffe es weiß jemand eine lösung zu meinen zwei problemen

Mit freundlichen Grüßen Marcel

Real programmers don't comment their code - it was hard to write, it should be hard to understand.

N
8 Beiträge seit 2010
vor 12 Jahren


// Daten einlesen
DirectoryInfo dir = new DirectoryInfo(Path.Combine(Application.StartupPath, (@"dein Pfad zur Music oder sonstwas");

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

foreach(Fileinfo file in files)
{
     listView.Items.Add(file.Name);
}


// Daten wiedergeben
private void listView_SelectedIndexChanged(object sender, EventArgs e)
{
    foreach(ListViewItem item in listView.SelectedItem)
    {
         string path = Application.StartupPath;
         path += "\\dein Pfad zur datei\\" + item.Text;

         if(listView.SelectedItems.Count != 0)
              axWindowsMediaPlayer1.URL = path;

    }
    axWindowsMediaPlayer.Ctlcontrols.play();
}

Ich hab daran Monate verbracht aber das waere ein Ansatz, sofern ich dein problem richtig verstanden habe.

Du bekommst aber ein Problem.Hast du das SDK 9.0, und den Media player geupdated auf 10+, dann funktioniert es nicht mehr.

Weiterfuehrende Links:
http://www.timwylie.com/playlist.html // playlist erstellen
http://www.bilnetforum.com/c/692-windows-media-player-ve-c.html
http://www.codeguru.com/forum/showthread.php?t=489279 // playstate
http://www.bilnetforum.com/c/692-windows-media-player-ve-c.html // loop media ordner

4.939 Beiträge seit 2008
vor 12 Jahren

Hallo Crone,

beim AxWindowMediaPlayer kannst du die Eigenschaft "uiMode" auf "invisible" setzen:


axWindowsMediaPlayer.uiMode = "invisible";

Aber was genau meinst du mit "Sound dann nicht aus den Properties geladen"?
Hast du dort den Dateinamen drin gespeichert oder aber die komplette ASX-Datei als Ressource?
Bei letzterem mußt du erst temporär die Datei ins Dateisystem kopieren und dann dessen Pfad bei der URL eintragen (evtl. vorher noch "file:\" anfügen).

C
Crone Themenstarter:in
168 Beiträge seit 2010
vor 12 Jahren

Ich hab ne datei in den ressources gespiechert mit dem format .asx

wenn ich nun folgenden befehl verwende:


nameDesMediaPlayerObjekts.URL = Properties.Resources.dateiName;

kommt ein fehler bei compilieren > Fehlermeldung:

Fehler: Eine implizite Konvertierung vom Typ "byte[]" in "string" ist nicht möglich.

mit diesem befehl gehts wunderbar:


nameDesMediaPlayerObjekts.URL = "C:\\Users\\Marcel\\Musik\\dateiName.asx";

ich habs auch mit diesen befehl probiert ... ich bekomm zwar kein fehler aber abgespielt wirds trotzdem nicht.


player.URL = Properties.Resources.ResourceManager.GetString("dateiname");

Real programmers don't comment their code - it was hard to write, it should be hard to understand.

5.658 Beiträge seit 2006
vor 12 Jahren

Wie der Name des Properties schon sagt, soll dort die URL zur Datei drin stehen, und nicht der Inhalt der Datei.

Eine URL auf eine eingebettete Resource kannst du nicht erzeugen, also bleibt dir nur der Weg, die Datei erstmal ins Dateisystem (Temp-Verzeichnis) zu kopieren und von da aus abzuspielen.

Wenn du die Datei aus dem Speicher abspielen willst (also ohne den Umweg übers Dateisystem), kannst du mal schauen, ob das von DirectPlay unterstützt wird.

Christian

Weeks of programming can save you hours of planning

C
Crone Themenstarter:in
168 Beiträge seit 2010
vor 12 Jahren

hab die datei einfach aufen Root-Server von mir gespeichert und hab sie von da aus geladen 😉

hab aber noch eine frage und zwar würde ich gerne per Tasten bindings z.b. Die Taste Play aktvieren... wenn ich strg + p drücke. Dies soll auch funktionieren wenn das programm sich im hintergrund befindet.

Real programmers don't comment their code - it was hard to write, it should be hard to understand.

5.658 Beiträge seit 2006
vor 12 Jahren

Strg-P brauche ich in den meisten Programmen zum Drucken. Ich würde jedes Programm von der Festplatte verbannen, das mir meine wichtigsten Tastatur-Shortcuts klaut.

Weeks of programming can save you hours of planning

C
Crone Themenstarter:in
168 Beiträge seit 2010
vor 12 Jahren

Ja war nur ein beispiel das Short cut sollen die user nach möglickeit selbst wählen können.

Real programmers don't comment their code - it was hard to write, it should be hard to understand.