Autor Beitrag
thelasteiwaz
Hält's aus hier
Beiträge: 1



BeitragVerfasst: Di 17.06.08 23:44 
Ich werfe mal ein freundliches "Hallo" in die Runde und komme auch gleich zu meinem Problem.

Ich möchte ein kleines Spiel schreiben und dafür die wirklich kleinen Videosequenzen in die .exe mit einbinden, sprich aus einer Resource abrufen.

Videos von der Festplatte über den Dateinamen aufzurufen und abzuspielen ist kein Problem, das habe ich so gemacht:

ausblenden volle Höhe C#-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:
// Form in dem das Video in einer PictureBox laufen soll und über Play-Button aufgerufen wird
 private void pictureBox1_Play_Click(object sender, EventArgs e)
        {
media.OpenRessource(@"d:\-=kram=-\bier und frau.wmv"this.pictureBox1);
            media.Play();
}

// media-Klasse

[DllImport("winmm.dll")]
        //private static extern long mciSendString(string strCommand, StringBuilder strReturn, int iReturnLength, IntPtr hwndCallback);
        extern static int mciSendString(string command, int responseBuffer, int bufferLength, int nothing);
        //[DllImport("winmm.dll")]

public void OpenRessource(string name, System.Windows.Forms.PictureBox videobox)
        {
          

            sCommand = "open \"" + name+ "\" type mpegvideo alias MediaFile style child parent " + videobox.Handle.ToInt32();
            mciSendString(sCommand, 000);
            sCommand = "put MediaFile window at 0 0 " + videobox.Width + " " + videobox.Height;
            mciSendString(sCommand, 000);


        }

public void Play()
        {
            sCommand = "play MediaFile";
            mciSendString(sCommand, 000);
        }

....


Das ist ja kein Problem. Auch kein Problem ist es Bilder oder MP3's aus einer Resource aufzurufen bzw. abzuspielen. Aber ich bekomme es einfach nicht hin ein Video aus einer Resource abzuspielen.
Habe dazu auch nichts im Netz gefunden. Den einzigen Hinweis das es irgendwie funktionieren muss habe ich in diesem Zitat gefunden:

Zitat:

"MCI can open AVI files by using a file-interface pointer or a stream-interface pointer. To open a file by using either type of interface pointer, specify an at sign (@) followed by the interface pointer in place of the file or device name for the lpszDevice parameter. ..."


Aber ich finde weder diese Stelle in der SDK noch kann ich viel damit anfangen.

Wäre über Hilfe - egal in welche Richtung - echt dankbar, bin bald am verzweifeln. Kann doch nicht sein, dass ich der einzige bin, der so was machen möchte!
Die Möglichkeit die Datei aus der Resource auf die Platte in einen Temp Ordner zu schreiben und von dort abzuspielen ist meine Notlösung - bin ich aber nicht wirklich happy mit.

LG,
eiwaz