Ich habe ein C# -Projekt mit einigen gif- und mp3-DateienWie kann ich gif- oder mp3-Dateien in meinem Projekt ausblenden?
Wie kann ich diese Dateien in meinem Projekt kombinieren?
(ich will sie nicht für Benutzer sichtbar sein)
Ich habe ein C# -Projekt mit einigen gif- und mp3-DateienWie kann ich gif- oder mp3-Dateien in meinem Projekt ausblenden?
Wie kann ich diese Dateien in meinem Projekt kombinieren?
(ich will sie nicht für Benutzer sichtbar sein)
Sie müssen sie als Ressourcen in das Projekt einbeziehen und dann später durch Lesen aus der DLL darauf zugreifen.
Für GIF-Dateien können Sie sie einfach auf die Ressourcen fallen kann (im Ausbau-> Eigenschaftendialog) und sie dann Zugriff über
var img = Properties.Resources.GifName;
für MP3-Dateien, die Sie wahrscheinlich eingebettete Ressourcen nutzen müssen, und dann lies sie als Stream aus. Ziehen Sie das Element dazu in einen Ordner in Ihrem Projekt, der diesen Dateitypen zugeordnet ist. Klicken Sie mit der rechten Maustaste auf die Datei im Explorer und zeigen Sie den Eigenschaftenbereich an, und legen Sie die "Build-Aktion" auf "eingebettete Ressource" fest.
Sie können dann Code so verwenden (ungetestete Übersetzung von vb, sorry), um das Ding wieder als Stream zu bekommen. Es liegt an dir, den Stream in etwas zu verwandeln, mit dem dein Spieler umgehen kann.
using System.Linq; // from System.Core. otherwise just translate linq to for-each
using System.IO;
public Stream GetStream(string fileName) {
// assume we want a resource from the same that called us
var ass = Assembly.GetCallingAssembly();
var fullName = GetResourceName(fileName, ass);
// ^^ should = MyCorp.FunnyApplication.Mp3Files.<filename>, or similar
return ass.GetManifestResourceStream(fullName);
}
// looks up a fully qualified resource name from just the file name. this is
// so you don't have to worry about any namespace issues/folder depth, etc.
public static string GetResourceName(string fileName, Assembly ass) {
var names = ass.GetManifestResourceNames().Where(n => n.EndsWith(fileName)).ToArray();
if (names.Count() > 1) throw new Exception("Multiple matches found.");
return names[0];
}
var mp3Stream = GetStream("startup-sound.mp3");
var mp3 = new MyMp3Class(mp3stream); // some player-related class that uses the stream
Hier sind ein paar Links, die Sie
sie einbeziehen in einer Ressourcendatei (resx).
Sie sollten sie nur als Ressourcen zuweisen. Wenn Sie das Eigenschaftenfenster in VS aufrufen, vergewissern Sie sich, dass Ihre Build-Aktion auf "Ressource" und "In Ausgabeverzeichnis kopieren" auf "Nicht kopieren" festgelegt ist. Sie können Ressourcen auch innerhalb der Projekteigenschaften auf der Registerkarte Ressourcen verwalten.
Fügen Sie sie als eingebettete Ressourcen hinzu und sie werden in die DLL kompiliert.
Fügen Sie sie zuerst dem Projekt hinzu, indem Sie sie einfach in den Lösungsexplorer ziehen und dann zu ihren Eigenschaften wechseln, um ihre Build-Aktion in eingebettete Ressourcen zu ändern.
Es gibt eine vollständigere "ResourceHelper", die ich verwenden, um den Einstieg. Lass es mich wissen, wenn du es möchtest (pass einfach durch einen VB-> C# Übersetzer) –