| Autor |
Beitrag |
BFK 
      
Beiträge: 26
|
Verfasst: Mo 19.01.09 02:06
Naja, das "video.avi" kommt weil ich vorher:
C#-Quelltext 1:
| path = Path.Combine(path,"video.avi"); |
geschrieben habe, sorry, habe vergessen das zu sagen.
Wenn ich diese Zeile auslasse, dann kommt als Pfad ja nur das:
Quelltext 1:
| C:\Dokumente und Einstellungen\BFK\Lokale Einstellungen\Temp\temp1B0.tmp |
(Ok, diesmal war es zwar temp1C8.tmp, spielt ja aber keine Rolle.)
Und derselbe Fehler..!
Wenn ich diese tmp-Datei öffne, mit Windows Media (wie du sagtest) oder mit vlc player, dann wird das Video zwar abgespielt, aber ohne Bild, also nur Sound..!
|
|
jaenicke
      
Beiträge: 19346
Erhaltene Danke: 1754
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Mo 19.01.09 02:09
BFK hat folgendes geschrieben : | Naja, das "video.avi" kommt weil ich vorher:
C#-Quelltext 1:
| path = Path.Combine(path,"video.avi"); |
geschrieben habe, sorry, habe vergessen das zu sagen. |
Das musst du aber vor der Erzeugung des Streams machen, das ist dir hoffentlich klar?
Weil sonst erzeugst du die Datei mit dem ursprünglichen Namen und gibst den neuen Namen (einer nicht existierenden Datei) zurück...
Zudem würde es reichen .avi an den Dateinamen anzuhängen, dann sähe der so aus:
xy.tmp.avi
// EDIT:
Ich vermute auch, dass das Verzeichnis nicht automatisch erzeugt wird (denn der Dateiname .tmp wird ja mit deinem Path.Combine als Ordnername benutzt), deshalb ist das anhängen von .avi die sinnvollere Alternative.
Du kannst natürlich auch wie im VB Quelltext verfahren.
|
|
BFK 
      
Beiträge: 26
|
Verfasst: Mo 19.01.09 02:20
Habe das ja hier gemacht:
C#-Quelltext 1: 2: 3: 4: 5: 6: 7: 8:
| public string GetTempFileFromBytes(byte[] data) { string path = Path.GetTempFileName(); using (Stream stream = File.OpenWrite(path)) stream.Write(data, 0, data.Length); path = Path.Combine(path,"video.avi"); return path; } |
und dann mit
C#-Quelltext 1:
| Video myvid = new Video(GetTempFileFromBytes(video1.Properties.Resources.video)); |
jaenicke hat folgendes geschrieben : |
Zudem würde es reichen .avi an den Dateinamen anzuhängen, dann sähe der so aus:
xy.tmp.avi
|
Hatte ich ja auch am Anfang so gemacht, nur kam da auch derselbe Fehler raus.
//Edit
Wenn ich .avi anhänge zeigt er mir dann folgenden Pfad:
C#-Quelltext 1:
| C:\Dokumente und Einstellungen\BFK\Lokale Einstellungen\Temp\tmp1B0.tmp\.avi |
Wie kann ich denn das "\" auslassen und wieso macht er überhaupt ein "\" ..?
Zuletzt bearbeitet von BFK am Mo 19.01.09 02:24, insgesamt 1-mal bearbeitet
|
|
jaenicke
      
Beiträge: 19346
Erhaltene Danke: 1754
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Mo 19.01.09 02:21
|
|
BFK 
      
Beiträge: 26
|
Verfasst: Mo 19.01.09 02:28
Sorry, könntest du mir das Bitte erklären, wie du das meinst..?
Weil nach meiner Logik nach setzte ich das ".avi" an meinem Pfad an und übergebe es doch danach an Video... .
|
|
jaenicke
      
Beiträge: 19346
Erhaltene Danke: 1754
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Mo 19.01.09 02:46
|
|
BFK 
      
Beiträge: 26
|
Verfasst: Mo 19.01.09 03:14
Das erklären hast du aber wirklich drauf muss ich schon sagen.
Nun zu meinem Problem:
 Leider kommt immernoch dieselbe Fehlermeldung..!
Nur diesmal erstellt er eine Datei im Temp die ne avi-Datei ist namens "tmpblabla.tmp.avi"..!
Beim abspielen wird auch wieder nur Sound abgespielt..!
Weiss nicht, was ich diesmal wieder falsch mache...???
Ahh und noch was nebenbei, wo hättest du eigentlich das Video denn definiert..?
Meine wo wäre denn für dich am logischten die folgende Zeile zu schreiben..?
C#-Quelltext 1:
| Video myvid = new Video... |
|
|
jaenicke
      
Beiträge: 19346
Erhaltene Danke: 1754
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Mo 19.01.09 03:25
|
|
BFK 
      
Beiträge: 26
|
Verfasst: Mo 19.01.09 03:28
|
|
jaenicke
      
Beiträge: 19346
Erhaltene Danke: 1754
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Mo 19.01.09 03:40
Davon war ich auch ausgegangen, aber ich hätte eine andere Fehlermeldung erwartet aufgrund der Änderung, deshalb habe ich noch einmal nachgefragt.
Leider ist die Dokumentation von Microsoft an der Stelle ziemlich dürftig. Ich bin dabei es selbst auszuprobieren, muss aber erst noch herausfinden wie ich das in Visual Studio genau umsetzen muss (z.B. was Ressourcen angeht). Aber das ist sicher nicht schwer.
Ich denke ich werde in ein paar Minuten so weit sein. 
|
|
BFK 
      
Beiträge: 26
|
Verfasst: Mo 19.01.09 17:31
jaenicke hat folgendes geschrieben : |
Leider ist die Dokumentation von Microsoft an der Stelle ziemlich dürftig. Ich bin dabei es selbst auszuprobieren, muss aber erst noch herausfinden wie ich das in Visual Studio genau umsetzen muss (z.B. was Ressourcen angeht). Aber das ist sicher nicht schwer.
|
Ja MSDN ist in manchen Bereiche leider nicht so umfangsreich wie es sein sollte.
Hoffe du findest den Fehler und DANKE dir schon jetzt für deine Mühe und vor allem deiner kostbaren Zeit..!
|
|
jaenicke
      
Beiträge: 19346
Erhaltene Danke: 1754
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Mo 19.01.09 17:55
Nachdem ich gestern beim Download des DirectX SDKs eingeschlafen bin (und es heute morgen vergessen hatte)  habe ich es jetzt gerade eben getestet. Ich hatte keine Probleme, gleich der erste Versuch funktionierte. Und das auch ohne die Dateierweiterung auf .avi zu setzen.
Was noch nach der Erzeugung des Videos fehlte war das: C#-Quelltext 1: 2:
| myvid.Owner = MyPanel; myvid.Play(); | Aber ansonsten funktionierte die Videoeinbindung problemlos.
Mein kompletter Quelltext (also praktisch nur Copy&Paste): C#-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| public string GetTempFileFromBytes(byte[] data) { string path = Path.GetTempFileName(); using (Stream stream = File.OpenWrite(path)) stream.Write(data, 0, data.Length); return path; } private void button1_Click(object sender, EventArgs e) { Video myvid = new Video(GetTempFileFromBytes(Properties.Resources._N24_20090119_041008)); myvid.Owner = MyPanel; myvid.Play(); } |
// EDIT:
Ach ja: Die Anzeige und auch der Sound waren normal.
// EDIT2:
Ich weiß nicht, ob das wichtig ist, aber ich habe einfach alle DLLs mit Microsoft.DirectX.* als Referenz hinzugefügt, nicht nur einzelne.
|
|
BFK 
      
Beiträge: 26
|
Verfasst: Mo 19.01.09 18:31
Komisch bei mir funkt es nicht..!
Mit "alle DLLs mit Microsoft.DirectX.* " meinst du doch die Verweise, die man im Ordner Verweise unter den Projektmappenexplorer hinzufügt, oder nicht..?
Weil da habe ich nur (von den DirectX) "Microsoft.DirectX" und "Microsoft.DirectX.AudioVideoPlayback", aber auch wenn ich andere Verweise da hinzufüge (wie z.B. DirectX.DirectPlay), funkt es nicht, also kommt immernoch der Fehler der Exception.
jaenicke hat folgendes geschrieben : |
Was noch nach der Erzeugung des Videos fehlte war das: C#-Quelltext 1: 2:
| myvid.Owner = MyPanel; myvid.Play(); | Aber ansonsten funktionierte die Videoeinbindung problemlos.
|
Die beiden Zeilen habe ich auch, ich habe eigentlich den genau gleichen Code wie du, nur dass sich dieser Abschnit:
C#-Quelltext 1: 2: 3:
| Video myvid = new Video(GetTempFileFromBytes(Properties.Resources._N24_20090119_041008)); myvid.Owner = MyPanel; myvid.Play(); |
in der Funktion Form1_Load befindet und nicht in button1_click, ist ja eigentlich in diesem Fall doch egal..!
Könnte es sein, dass ich mein Video nicht richtig als resource gespeichert habe..???
Aber dann hätte doch eigentlich schon bei dieser Zeile:
C#-Quelltext 1:
| Mynamespace.Properties.Resources.video |
einen Fehler geben müssen, oder nicht..???
|
|
jaenicke
      
Beiträge: 19346
Erhaltene Danke: 1754
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Mo 19.01.09 20:46
|
|
BFK 
      
Beiträge: 26
|
Verfasst: Di 20.01.09 14:01
jaenicke hat folgendes geschrieben : | Ich werde einfach mal ein komplettes Projekt hochladen, inkl. Testvideo. Das muss ich aber erst vorbereiten, es soll ja auch nicht unnötig groß sein, aber sehen und hören muss man ja trotzdem was.
|
Ahh ok, dann warte ich mal einfach ab.
Bin wirklich gespannt, woran es liegt..!
|
|
BFK 
      
Beiträge: 26
|
Verfasst: Mi 21.01.09 17:34
Hätte nur noch eine Frage.
Da es bei mir aus irgendeinen Grund nicht klappt, (habe es mittlerweile auch aufm zweiten Rechner getestet) wollte ich mal Fragen, gibt es noch einen anderen Player, ausser den DirectX, womit ich video Dateien abspilen kann...?
Und wenn ja, welcher..?
MFG BFK..!
|
|
jaenicke
      
Beiträge: 19346
Erhaltene Danke: 1754
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Mi 21.01.09 18:00
Also ich habe jetzt schnell eine Demo mit einer .avi Datei angehängt. Ich hatte es vergessen.
Alles dabei was im Projektordner war, inkl. kompilierter Exe.
Einloggen, um Attachments anzusehen!
|
|
BFK 
      
Beiträge: 26
|
Verfasst: Mi 21.01.09 18:39
Einloggen, um Attachments anzusehen!
|
|
jaenicke
      
Beiträge: 19346
Erhaltene Danke: 1754
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Mi 21.01.09 18:48
Was passiert denn, wenn du ohne zu kompilieren oder irgendetwas nur die exe im Bin\Debug Verzeichnis von mir ausführst. Achte darauf, dass es wirklich die aus der Zip-Datei ist.
Das ist ja vor allem interessant, weil das ja bereits fertig kompiliert ist. D.h. wenn da der Fehler auftritt, verrät das schon einiges. Dann liegt es an etwas auf deinem PC. Allerdings hätte ich, wenn es so ist, im Moment nicht viele Ideen mehr, könnte aber versuchen das auf anderen PCs selbst zu testen um einen zu finden, wo das auch auftritt.
|
|
BFK 
      
Beiträge: 26
|
Verfasst: Mi 21.01.09 18:59
Ok habe es direkt von der exe-gestartet und der Fehler taucht wieder auf, diesmal anders. (Siehe Bild im Anhang).
Hab es dann auch auf meinem zweiten Rechner getestet, wo auch der gleiche Fehler kommt.
Hab es dann per Skype an nem Kumpel geschickt, also nur die exe, und bei ihm läuft es normal. Er meint es bewegt sich ein Pfeil und so, es kommte also keine Fehlermeldung...!
Das Problem ist wirklich nur bei mir und komischerweise bei beiden Pcs..!
Einloggen, um Attachments anzusehen!
|
|
|