Autor Beitrag
Muellermilchtrinker
Hält's aus hier
Beiträge: 7



BeitragVerfasst: Mo 31.10.11 20:52 
Hallo,

ich möchte mit RecordStart der bass.dll den Sound aufnehmen (am besten ohne es in eine Datei zu speichern), damit ich es dann auf 2 ProgressBars visualisieren kann.

Weiß jemand von euch wie das geht? Gibts irgendwo Tutorials / Beispielcode dazu?

Wäre euch dankbar.
Metschu
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 135

Windows XP SP2 Home
Delphi 7; Delphi XE2-Starter
BeitragVerfasst: Di 01.11.11 00:09 
Hast Du schonmal auf der Homepage nachgeschaut?

Da gibts auch einige Beispiele und auch ein Forum - leider nur Englisch, aber mit meinem Schulenglisch bin ich da auch schon oft weiter gekommen :D

Gruß

Torsten
rushifell
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 306
Erhaltene Danke: 14



BeitragVerfasst: Di 01.11.11 01:10 
Schau Dir mal das der bass.dll beiliegende Beispiel RecordTest an. Das macht im Prinzip genau das, was Du möchtest. Die aufgenommenen Daten werden in einen MemoryStream geschrieben und können anschließend bei Bedarf in einer Datei gespeichert werden. Die Visualisierung fehlt zwar noch, aber dafür sollte es auch Beispiele geben.

Gruß
Muellermilchtrinker Threadstarter
Hält's aus hier
Beiträge: 7



BeitragVerfasst: Di 01.11.11 14:24 
Das Beispiel funktioniert bei mir jedoch nicht.

In der ComboBox steht Hauptlautstärke drin und drunter microphone, doch wenn ich etwas abspiele dann auf record drücke und mir das später wieder anhören will, bleibt alles ruhig.

Hat jemand ein funktionierendes Beispiel?
rushifell
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 306
Erhaltene Danke: 14



BeitragVerfasst: Di 01.11.11 17:49 
Also bei mir funktionierts (wusste gar nicht, dass man einen Kopfhörer als Mikrofon missbrauchen kann :twisted: )

Was für ein OS benutzt Du? Mach mal mit der Maus einen Rechtsklick rechts unten auf den Windows-Lautsprecher, wähle "Aufnahmegeräte" und überprüfe die Einstellungen vom Mikro.

Gruß
Muellermilchtrinker Threadstarter
Hält's aus hier
Beiträge: 7



BeitragVerfasst: Di 01.11.11 17:54 
Als OS benutze ich Windows 7 Professional x64 soll später jedoch auch anderen OS laufen. Windows 2k Unterstützung wäre gut.

Naja ich will aber nicht den Sound von einem Mikrofon visualisieren, sondern den Sound, der aus den Boxen kommt und den man hört.
rushifell
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 306
Erhaltene Danke: 14



BeitragVerfasst: Di 01.11.11 19:04 
Beschreib doch vielleicht einfach, was Du genau vorhast und was Du erreichen willst? Vielleicht gibt es dafür eine bessere Lösung. Bass.dll kann schließlich auch Sounds diverser Formate abspielen.

Wenn Du vom Desktop aufnehmen möchtest: Rechtsklick auf den Windows-Lautsprecher, Aufnahmegerät, Tabulator Aufnahme und bei Bedarf "Stereomix" aktivieren. Ich weiss jetzt nicht, wie das unter Win7 ist, ich benutze Vista.

PS: Das Mikrofon musst du natürlich vom PC entfernen, oder hast Du ein integriertes Mikrofon? Eventuell das Mikro deaktivieren.
Metschu
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 135

Windows XP SP2 Home
Delphi 7; Delphi XE2-Starter
BeitragVerfasst: Di 01.11.11 19:24 
user profile iconMuellermilchtrinker hat folgendes geschrieben Zum zitierten Posting springen:
Naja ich will aber nicht den Sound von einem Mikrofon visualisieren, sondern den Sound, der aus den Boxen kommt und den man hört.


Du musst dann als Aufnahmequelle Wave auswählen. Das Sind dann die Audio-Daten, die vom PC selbst kommen, also nicht Line-In, Mic oder so.
Muellermilchtrinker Threadstarter
Hält's aus hier
Beiträge: 7



BeitragVerfasst: Di 01.11.11 20:18 
Also ich möchte den Sound von Windows visualisieren.

Als Beispiel wie ich es möchte gibt es so ein Gadget: blog.orbmu2k.de/side...ntrol-sidebar-gadget
Wenn ihr dieses installiert und von irgendeiner Soundquelle (Youtube, Winamp, etc.) etwas abspielt, dann wird an dem Gadget oben der Sound visualisiert.

Und genau das möchte ich erreichen. Einfach der Sound den man hört visualisieren.


Was ich bereits gemacht habe ist, den Sound visualisieren, der von einer mp3 kommt, die ich mit der bass.dll in meinem Programm abspiele. Jedoch möchte ich gern den Sound von Windows haben.
rushifell
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 306
Erhaltene Danke: 14



BeitragVerfasst: Di 01.11.11 21:13 
Also, ich hab's jetzt auf Win7 probiert und folgendermaßen zum Laufen gebracht. Eigentlich hab ich oben alles schon zweimal erklärt ;-)

- Rechtsklick auf den Windows-Lautsprecher rechts unten
- "Aufnahmegeräte" wählen
- Wenn nur ein Mikrofon angezeigt wird: beim Tab "Aufnahme" Rechtsklick ins Leere
- bei "Deaktivierte Geräte anzeigen" Haken setzen.
- Nun sollte "Stereomix" angezeigt werden.
- Stereomix aktivieren.
- Mikrofon deaktivieren.

Dann sollte es auch unter Win7 gehen.

Vom Ansatz her stimmt das Beispiel RecordTest also. Schau doch mal im Quelltext nach, ob Du dort das Aufnahmegerät auswählen kannst, wenn beide aktiviert sind (also Mikro oder Stereomix), hab auf Win7 kein Delphi installiert.

Gruß
rushifell
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 306
Erhaltene Danke: 14



BeitragVerfasst: Mi 02.11.11 01:06 
So, es funktioniert auch, wenn mehrere Audio-Geräte (Mikrofon, Stereomix,...) aktiviert sind. Das Aufnahmegerät muss aktiviert sein, sonst gehts (so weit ich weiss) unter Vista und Win 7 nicht (siehe meine Beschreibung oben).

Auflistung der aktiven Aufnahmegeräte:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
Var Info:BASS_DEVICEInfo;
    i:Integer;
begin
    ComboBoxDevice.Items.Clear;
    i:=0;
    While BASS_RecordGetDeviceInfo(i,Info) do
       BEGIN
        ComboBoxDevice.Items.Add(Pchar(Info.name));
        Inc(i);
       END;
   IF ComboBoxDevice.Items.Count>0 then
      ComboBoxDevice.ItemIndex:=0;
end;

Eventuell muss man das in einen Timer packen, damit die Geräte immer aktuell sind!?

... und hier die Zuweisung:
ausblenden Delphi-Quelltext
1:
2:
3:
if (not BASS_RecordInit(ComboBoxDevice.ItemIndex)) then
   ShowMessage('Fehler'else
   ...


Getestet unter Vista und Win7. Einstellung der Aufnahmelautstärke hat auch funktioniert. Wenn Du die Visualisierung schon gemacht hast, müsste es hierbei eigentlich genau so funktionieren.

Viele Grüße