Hallo,
Zitat von
alcaeus:
Ich kann mir das nur so erklaeren: um schneller auf die Daten zugreifen zu koennen, wird die Datei am Anfang komplett in den
RAM eingelesen, und anschliessend von dort abgespielt. Das
Handle auf die Datei ist damit unnoetig und kann weggeworfen werden. Die Daten liegen dann aber wahrscheinlich bis zum Stop-Befehl im
RAM, und koennen deshalb weiterverwendet werden.
Du kannst ja mal probieren, mit demselben (!) Player eine Datei abzuspielen und die Datei waehrend dem Abspielen zu loeschen. Wenn sich meine Vermutung bestaetigt, dann lass mich sagen, dass die Art von Programmierung IMO ueberhaupt nicht gut ist.
Greetz
alcaeus
Die Datei wird natürlich nicht komplett in den Speicher geladen, das dauert ja bei nem richtigen Video ewig und danach ist der Speicher voll. Manche User haben nur 256MB
RAM.
Wenn Du irgendwo ein Video hast, dann kopier das mal und öffne die Kopie im Windows Media Player. Während dieses Video abgespielt wird lässt es sich ohne Probleme löschen. Natürlich ist die Datei physisch noch auf der Platte, aber DirectShow greift doch sicher auch über die
API auf das Dateisystem zu?
Zitat von
SirThornberry:
Variante2:
Diese ist eigentlich die wahrscheinlichere Variante da die Datei eigentlich nöcht gelöscht werden kann während sie verwendet wird. Und zwar hast du die Datei vermutlich über den Arbeitsplatz oder den Explorer gelöscht. Wenn dabei eine Datei noch in Verwendung ist meckert der Explorer in aller Regel nicht sofort rum sondern versucht die Datei trotzdem zu löschen, und erst wenn das löschen nach einer bestimmten zeit nicht geklappt hat kommt eine Fehlermeldung. Es kann also durchaus sein das du die Datei gelöscht hast (also dem Explorer den Befehl gegeben hast) und dann das Video noch angeschaut hast (drin rum gezappt). Danach klickst du auf stopp und in diesem moment wird die Datei (
Handle) freigegeben und der Explorer löscht diese. Somit wars das und die Datei kann nicht wieder geladen werden.
Wenn ich aber z. B. ein mp3 abspiele meckert der Explorer sofort, dass die Datei noch in Benutzung ist. Und warum ist die Datei im Explorer schon weg, wenn andere Programme noch darauf zugreifen können? Normalerweise sollte Windows
immer meckern, wenn eine Datei noch verwendet wird.
Gruß
xaromz