![]() |
Re: MP3 von CD in Speicher bufferweise lesen und abspielen
nein eben nicht weil beim streaming die datei erstmal im hintergrund komplett auf die platte geklatscht wird und später dann gelöscht wird..meine datei soll aber NIEMALS auf der Platte sein ..und auch nicht im Speicher..wenn dann nur im Speicher und zwar stückchenweise damit man nie eine komplette Datei haben kann :-)
|
Re: MP3 von CD in Speicher bufferweise lesen und abspielen
Also, du willst den Media Player starten und einen Song von CD abspielen. Dieser Song liegt als Datei vor.
Außerdem soll der Song nicht auf irgendeinem Datenträger landen, um ihn beispielsweise zu speichern, weder im Ab-Speicher noch auf der Festplatte. Und was soll das verhindern? Das jemand deine Songs nicht klauen kann? Blödsinn, das kann er so oder so. :stupid: |
Re: MP3 von CD in Speicher bufferweise lesen und abspielen
Über die Philosophie weshalb und wieso und wozu und weswegen braucht man sich nicht unterhalten das ist ja nicht die Frage gewesen.. aber ein Grund ist das Verhindern von Schreibprozessen auf der Festplatte denn je größer das Datenvolumen umso schneller nutzt sich die Platte ab, wenn da ständig zugegriffen werden muss..Speicher ist da was anderes eben nicht maschinell.
ich dachte es könnte so gehen... was fehlt da noch..zum Optimieren wäre super wenn mir jemand auch dabei unter die Arme greifen könnte
Delphi-Quellcode:
nur wie bekomme ich jetzt die Datei als das MemStream ..von mir aus ist der Pfad der Datei
var MemStream: TMemoryStream;
MemStream := nil; try MemStream := TMemoryStream.Create; Stream.Position := 0; while Stream.Pos < Stream.Size do begin MemStream.Clear; if (Stream.Pos+10240000) <= Stream.Size then MemStream.CopyFrom(Stream,10240000) else MemStream.CopyFrom(Stream,Stream.Size - Stream.Pos); end; finally MemStream.Free; end; C:\Test.mp3 |
Re: MP3 von CD in Speicher bufferweise lesen und abspielen
Zitat:
Delphi-Quellcode:
Aber ganz ehrlich, ich hoffe du hast einen sinnvolleren Grund als die Abnutzung der Festplatte durch Schreibzugriffe. Da müsste die Platte aber schon ziemlich viele Zugriffe gehabt haben, damit dass passiert was du hier sagst. Und da du sicherlich die Speicherverwaltung dem Betriebssystem überlässt, hast du gar keinen Einfluss darauf, dass dein MemoryStream überhaupt nur RAM alloziert. Gut, wahrscheinlich hast du den virtuellen Speicher abgeschaltet, um Schreibzugriffe auf die Platte zu verhindern, aber dann wäre ja noch das booten, da schiebt Windows schon total unnötig und häufig Dateien hin und her, da soll der Start optimiert werden...
const FILE_NAME = 'C:\Test.mp3';
... MemStream := TMemoryStream.Create; MemStream.LoadFromFile(FILE_NAME); Also ich weiß nicht, in wie weit dass schon in allen Platten steckt, aber in der Regeln benutzen Festplatten sehr viel Intelligenz beim Schreiben. Die versuchen natürlich optimale Performance zu garantieren, aber auch Konsistenz der Daten ist nicht gerade unwichtig. Deshalb wird auch ein wenig verteilt geschrieben. Die Logik deiner Platte versucht ähnlich wie bei Flashspeicher nicht immer an die gleiche Stelle zu schreiben sondern möglichst gleich verteilt über die gesamte Platte zu kommen. Wie gesagt, ist eher OT und ich finde deine eigentliche Frage auch sinnvoll, aber ich hoffe du hast da einen besseren Grund. Gruß Der Unwissende |
Re: MP3 von CD in Speicher bufferweise lesen und abspielen
Wie wäre es mit einem kleinen Webserver in deinem Decoder? Du ruftst dann einfach
![]() Wobei... dann landet das Ergebnis im Cache, außer der Webserver verwendet ssl :? |
Re: MP3 von CD in Speicher bufferweise lesen und abspielen
Erstmal vielen Dank für die Hilfestellungen :-)..
Die Festplattenbenutzung ist natürlich nicht nur das Einzige..es ist auch die Rechteverteilung der jeweiligen Rechner, dabei will ich es einfach verhindern, dass etwas auf der Platte abgelagert wird, was auf CD schon existiert..auch wenn dies nur Sessionbedingt ist, die heutigen PCs sind da schnell genug alsdass man eben mit Festplatte "vorbuffern" müsste. Der eigene kleine Server ist keine gute Idee da ja wie du bereits sagst die Daten gecached werden und zweitens auch alle Firewalls gleich melden, dass da was versucht ausgeführt zu werden und wenn ein User eben auf nein klickt dann kann er die Daten nicht mehr empfangen. ich versuch es mal mit den bisher erfolgten Ratschlägen umzusetzen...werde somit gleich antworten, ob dies so klappt wie ich das mir vorgestellt hatte oder eben immer noch nicht realisiert werden konnte. |
Re: MP3 von CD in Speicher bufferweise lesen und abspielen
so bin nun eine ganze Stunde daran gesessen und weiss einfach nicht wie ich nun die Datei starten soll aus dem Speicher....
Shellexecute funktioniert da nicht..ich kann ja File_Name nehmen aber dann öffnet er die Datei direkt von da wo sie ist und eben nicht vom Speicher aus.. kann mir da jemand helfen? |
Re: MP3 von CD in Speicher bufferweise lesen und abspielen
Eben...
Du kannst dem Mediaplayer keinen Memorystream schicken, da es dafür einfach keine Schnittstelle gibt ;) Es gibt IMHO nur 2 Möglichkeiten: 1. Datei 2. Stream über einen Webserver/Mediaserver |
Re: MP3 von CD in Speicher bufferweise lesen und abspielen
ja das habe ich mir gerade auch gedacht..somit ist das ganze Vorhaben zum Scheitern verurteilt.. naja eine Frage bleibt dann noch.
kann ich die Datei auf der Festplatt die temporär entsteht vor Zugriffen schützen..sprich so lange die File abgespielt wird kann man sie nicht anklicken oder kopieren oder sonst was und nach dem abspielen wird sie dann gelöscht ? |
Re: MP3 von CD in Speicher bufferweise lesen und abspielen
Wenn Du es hinbekommst, deinen Server mit SSL zu sichern, dann speichert der Browser das ganze IMHO nicht so offen im Cache.
Obwohl... Es bliebe noch der Weg über einen Treiber ein eigenes Temporäres Laufwerk zu erzeugen... oder ähnlich wie filemon (sysinternals.com) alle Dateizugriffe abzufangen und ggf. den Zugriff zu verweigern. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:35 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz