Moin moin, ich habe eine Software, die via MCI Wavefiles aufzeichnet, abspielt, überschreibt usw (ein Wave-Recoder mit hin- und herspulen). Als platten kommen SSDs zum Einsatz. Ich wollte nun deshalb wenn möglich nicht mehr den ganzen Tag auf der Platte rumeditieren, sondern das ganze vielleicht im Arbeitsspeicher erledigen. Die Kisten haben 2gb RAM und ausser meiner Anwendung (unter Win7) läuft nichts. Da sollte es also möglich sein sagen wir mal 300MB als "Programmcache" abzuzwacken (das Speichern dauert regelmässig am längsten und die Dateien existieren nur temporär). Mir schwant nun folgendes vor: Zu Beginn wird die O-Tonspur (MP3) sowie die Wave-Spur mit der Verdolmetschung (in die der Student "reinschreibt") in den Arbeitsspeicher geladen. Aus dem RAM heraus wird die MP3 abgespielt und gleichzeitig die Wave-Datei aufgenommen. Später dann auch beides zusammen abgehört. Nach dem Beenden des Programmes gehen ohnehin alle temporären Dateien verloren. Lässt sich sowas irgendwie direkt unter .NET erledigen? Oder müsste ich von Hand eine RAM-Disk anlegen? (unschöne Lösung, da ich das händisch bei zig stationen machen müsste und die Ramdisk dann ja immer den gleichen Buchstaben haben müsste etc). Würd mich über ein paar Anregungen sehr freuen. Gruß Jens
Jens Plappert schrieb: > Lässt sich sowas irgendwie direkt unter .NET erledigen? ich denke schon > Oder müsste ich von Hand eine RAM-Disk anlegen? (unschöne Lösung, da ich > das händisch bei zig stationen machen müsste und die Ramdisk dann ja > immer den gleichen Buchstaben haben müsste etc). die Frage ist doch warum musst es denn eine RamDisk sein? Warum kannst du die Sache nicht einfach so im Ram machen? Es gibt doch ein C# MemoryStream und zur not einfach arrays.
Nun, ich habe das ganze ja schon ein paar Jährchen laufen und alle möglichen Funktionen sind auf Dateizugriffe ausgelegt. Die ursprünglichen Maschinen waren eh an der unteren Grenze des zumutbaren was den Hauptspeicher betrifft und von daher wurd halt alles mit Dateizugriffen auf die Platte gelöst. Es wäre jetzt halt einfach ne Nummer praktischer nicht alles umkrempeln zu müssen, um in den Arbeitsspeicher statt auf die Platte zu schreiben.
Jens Plappert schrieb: > Nun, ich habe das ganze ja schon ein paar Jährchen laufen und alle > möglichen Funktionen sind auf Dateizugriffe ausgelegt. dann wird es mal zeit zu erneuern > Es wäre jetzt halt einfach ne Nummer praktischer nicht alles umkrempeln > zu müssen, um in den Arbeitsspeicher statt auf die Platte zu schreiben. dafür aber wesentlich schneller und sauberer. Was ist wenn der user keine Admin rechte hat für eine Ramdisk? Oder es gar keine Ramdisk für Win8 RT gibt?
Ich muss dazu sagen, dass ich hier zwar einigermassen komplexe Projekte betreue, von Haus aus aber kein Informatiker /Programmierer bin. Ist soweit alles selbst angeeignet. Würde das heissen, dass ich komplett auf das MCI verzichten müsste, oder gibt es da Varianten die Zugriffe der WIN-API auch in den Speicher "umzuleiten". Ich bin gerade an einem Punkt, wo mein eigenes Wissen einfach aufhört.
Jens Plappert schrieb: > Würde das heissen, dass ich komplett auf das MCI verzichten müsste, oder > gibt es da Varianten die Zugriffe der WIN-API auch in den Speicher > "umzuleiten". leider habe ich auch noch nie mit MCI gearbeitet, mit welche funktionen nutzt du dann da um dateien zu öffnen?
NAudio sollte das alles zusammen mit dem erwähnten MemoryStream können http://naudio.codeplex.com/documentation
Mich wundert, das MCI in der msdn nicht längst als deprecated markiert ist.
Danke für die Tipps. Ich werd mir das dann demnächst mal genauer anschauen. Gruß Jens
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.