![]() |
Was gerade läuft aufnehmen
Hi.
Wie kann ich aufnehmen was grad auf dem Rechner für Musik läuft? Aber ohne Micro... |
Re: Was gerade läuft aufnehmen
Möchtest du einen Stream speichern oder Musik die von Festplatte abgespielt wird ;) ?
Wenn du einen Stream speichern willst: Es gibt unzählige Programme die Streams z.B. als MP3 auf Platte speichern können. Such mal ein wenig auf ![]() ![]() MfG Florian :hi: |
Re: Was gerade läuft aufnehmen
Stichworte
bass.dll mci |
Re: Was gerade läuft aufnehmen
Ich möchte die aufnehmen die gerade auf dem Rechner läuft. egal ob beep; oder Winamp etwas spielt....
Bass.dll ist schön und gut, nur wenn ich das programm verkaufen möchte (das ich auch vor habe) muss ich ja 1000$ herblettern...... |
Re: Was gerade läuft aufnehmen
Privatpersonen nur 100 oder willst du das eine Firma verkaufen?
Ansonsten halt mal über MCI oder Directsound informieren. |
Re: Was gerade läuft aufnehmen
Einer Firma
|
Re: Was gerade läuft aufnehmen
Ich weiß nicht ob das nur bei Creative geht, oder ob man da einfach nur ne andere Lautstärkeregelungssoftware braucht, aber in der Lautstärkeregelung von Creative kann man als Aufnahme Quelle neben Mikrofon etc. auch "What you hear" auswählen.
Wie das allerdings geht, keine Ahnung. Aber wie gesagt, mit anderer Software für Lautstärkeregelung müsste dass ja eigentlich auch gehen. Aber mit so Sachen wie der BassDLL oder ![]() Wirst dir das also vermutlich selbermachen müssen... kann mir nicht vorstellen dass das einfach ist. Bis dann, S - tefano |
Re: Was gerade läuft aufnehmen
Guten Abend!
Stichwort: overmoon Was das ist? Also sowas... Er hat RatRec programmiert, alles klar? Nicht? Dann schau mal hier: ![]() Vielleicht kann er dir helfen. :wink: Gruß Matze |
Re: Was gerade läuft aufnehmen
Also Dinge aufnehmen geht mit Delphi und der Unit mmSystem richtig einfach.
Der Schlüssel ist die Prozedur "mciSendString". Über diese Prozedur kann man die Komplette Aufnahme des Wave-Files machen. 1.) Wir müssen ein Audiogerät öffnen. Ich nenne es einfach mal "mySound".
Delphi-Quellcode:
2.) Nun müssen wir die Optionen für die Audioaufnahme einstellen. Da für gibt es einige Einstellungen:
mciSendString('OPEN NEW TYPE WAVEAUDIO ALIAS mySound',nil,0,Handle);
- BitsPerSample (Wie genau wird ein analoger Wert abgetastet; meist 8 oder 16) - Channels (Mono(1) oder Stereo (2)) - SamplesPerSec (Abtastungen pro Sekunde; 800,11025,22050,44100) Damit wäre eigentlich alles angegeben, was man braucht. Damit es funktioniert, müssen noch zwei weitere Dinge angegeben werden. Lässt man diese weg, gibt es Probleme. - BytesPerSec (= (BitsPerSample div 8)*Channels*SamplesPerSec ) - Alignment (= Channels*(BitsPerSample div 8) ) Die Prozedur zum Einstellen der Einstellungen sieht dann folgendermaßen aus:
Delphi-Quellcode:
3.) Das Starten der Aufnahme:
mciSendString('SET mySound ' +
'TIME FORMAT MS ' + 'BITSPERSAMPLE 16 ' + 'CHANNELS 2 ' + 'SAMPLESPERSEC 44100 ' + 'BYTESPERSEC 176400 ' + 'ALIGNMENT 4', nil,0,handle); Das folgende erklärt sich eigentlich von selbst:
Delphi-Quellcode:
4.) Genauso einfach ist das Stoppen der Aufnahme:
mciSendString('RECORD mySound',nil,0,Handle);
Delphi-Quellcode:
5.) Nach erfolgter Aufnahme wollen wir die Datei natürlich nicht im Nirvana des OS verschwinden lassen... wir müssen sie speichern.
mciSendString('STOP mySound',nil,0,Handle);
Das geht folgendermaßen:
Delphi-Quellcode:
mciSendString('SAVE mySound "c:\datei.wav"',nil,0,Handle);
6.) Schließlich muss man noch das Audiogerät "mySound", welches man am Anfang geöffnet hatte, schließen.
Delphi-Quellcode:
Und wir sind fertig mit der Aufnahme.
mciSendString('CLOSE mySound',nil,0,Handle);
7.) Weitere Aufgaben, die man über "mciSendString" machen kann sind z.B. noch: PLAY, WAIT und LOAD |
Re: Was gerade läuft aufnehmen
Die Aufnahmen werden nur leider recht groß, deshalb macht sich eine Konvertierung zu Mp3 recht gut.
Dazu bietet sich der lame - Encoder an. Den bekommst du hier: ![]() Dort bekommst du die lame_enc.dll und die lame.exe . Kannst du eigentlich nehmen, was du willst, konvertieren beide brav waves nach Mp3. Die lame.exe musst du z.B. einfach mit entsprechenden Parametern aufrufen. Zur Lizenz vom Lame_Ecoder: Zitat:
overmoon |
Re: Was gerade läuft aufnehmen
Bei
Delphi-Quellcode:
kommt:
mciSendString('SAVE mySound "c:\datei.wav"'),nil,0,Handle);
Zitat:
|
Re: Was gerade läuft aufnehmen
Hey! Du hast ne Klammer zu viel :-P
|
Re: Was gerade läuft aufnehmen
Stimmt. Ich habe nach dem Kopieren einfach vergessen, die Klammer zu löschen. Sorry. :roll:
So sieht bei mir nämlich der Codeteil aus:
Delphi-Quellcode:
Naja, du hast es ja gefunden. :dancer:
TempFile := CreateTempFile(exe_dir);
mciSendString('STOP mySound',nil,0,Handle); mciSendString(pChar('SAVE mySound "' + TempFile + '"'),nil,0,Handle); mciSendString('CLOSE mySound',nil,0,Handle); overmoon |
Re: Was gerade läuft aufnehmen
Mensch overmoon!
Mach doch ein Tutorial auf! :mrgreen: Das ist prima erklärt, würde ich an deiner Stelle machen. :D Gruß Matze |
Re: Was gerade läuft aufnehmen
Schon geschehen. :mrgreen:
|
Re: Was gerade läuft aufnehmen
Klasse!
Gefällt mir echt gut. :mrgreen: Gruß Matze |
Re: Was gerade läuft aufnehmen
Hallo Leute,
ich habe mir diesen thread durchgelesen und hätte da noch eine Frage. Ist es möglich die aufgenommene Datei (wav) nicht mit mciSendString(pChar('SAVE mySound "' + TempFile + '"'),nil,0,Handle); als Datei zu speichern, um diese dann weiter zu verarbeiten, sondern während der Aufnahme das aufgenommene direkt an die Lame Exe,dll zu senden? Denn wenn ich jetzt einen Mixer habe mit dem ich Sound Dateien mische, kann es vorkommen das 1'ne Stunde an gesamt Musik zusammenkommt und dann währe die wav- Datei > 1 GB. Axel |
Re: Was gerade läuft aufnehmen
Hallo,
ich habe da auch mal ein Frage zu diesem Thema. Was genau für ein Gerät ist "mySound"? Entschuldigt die Fragen, aber ich bin recht unerfahren und es ist trotzdem sehr wichtig :) Danke schon einmal im Voraus katernero |
Re: Was gerade läuft aufnehmen
Hi,
mySound ist nur der Name der Aufnahme. Eine Art Variable, deren Name du dir aussuchen kannst. Also du kannst anstatt MySound auch "DasWasIchAufnhemenWill" schreiben ;) Gruß Neutral General |
Re: Was gerade läuft aufnehmen
Achso, gut, dank dir ;)
Aber wo du gerade da bist. Ich hab von dir etwas mit einem Edit-Feld gefunden. Damit willst du doch den Ort und den Namen der Datei bestimmen, oder? Hab die Variante auch ausprobiert jedoch kam ich zu keinem Erfolg. Also es wird keine Datei ausgeben, wenn ich in das Edit zum Beispiel "C:\hahaha.wav" eingebe. Wäre nett, wenn du mir sagen könntest, wie deine Variante funktioniert :D |
Re: Was gerade läuft aufnehmen
Hi,
Ehm.. Mal gucken was du da gefunden hast o.O, Kann mich gar nicht erinnern das ich mich mal ernsthaft damit beschäftigt hatte.. Moment mal.... Meinst du ![]() Wenn du einfach nur den soeben aufgenommenen Sound abspielen willst dann:
Delphi-Quellcode:
Falls du Wav-Dateien abspielen willst empfehle ich dir eher PlaySound, die MediaPlayer Kompo oder auch die Bass.dll ;)
MCISendString('play MySound',...);
Gruß Neutral General |
Re: Was gerade läuft aufnehmen
Nein,
ich meine diesen ![]() Und speziell diese Zeile:
Delphi-Quellcode:
die du statt dieser:
mciSendString(pChar('SAVE mySound' + ' "' + Edit1.Text + '"'),nil,0,Handle);
Delphi-Quellcode:
verwendest.
mciSendString('SAVE mySound "c:\datei.wav"',nil,0,Handle);
Und bei der Edit1.Text bin ich davon ausgegangen, dass du dort den Ort, wo es gespeichert werden soll, und den Namen festlegst. Ist das so? Bei mir funktioniert es mit dieser Zeile leider nicht .. :( |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:30 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