![]() |
Aufnahme Code für netradio - alles richtig?
Hallo,
hab diesen Code für die .mp3 Aufnahme des netradios zusammen gestellt. Kann vllt jemand diesen überprüfen, ob da alles ok ist, denn die Qualität der .mp3 Dateien ist irgendwie schlecht, obwohl die Bitrate nicht verändert wird und die Aufnahme ist zeitversetzt.
Delphi-Quellcode:
private
procedure StartRec; procedure StopRec; var WaveStream : TMemoryStream; procedure TForm1.StartRec; begin WaveStream.Clear; end; procedure TForm1.StopRec; var FileName : String; begin FileName:='test.mp3'; WaveStream.SaveToFile(FileName); end; procedure StatusProc(buffer: Pointer; len, user: DWORD); stdcall; begin if (buffer <> nil) and (len = 0) then SendMessage(win, WM_INFO_UPDATE, 8, DWORD(PChar(buffer))) else WaveStream.Write(buffer^, len); <------- end; procedure TForm1.FormCreate(Sender: TObject); begin ... WaveStream:= TMemoryStream.Create; ... end; procedure TForm1.Button1Click(Sender: TObject); begin StartRec; end; procedure TForm1.Button2Click(Sender: TObject); begin StopRec; end; |
Re: Aufnahme Code für netradio - alles richtig?
Hi!
Funktioniert der Code denn? Was ist mit der markierten Stelle? Ciao, Frederic |
Re: Aufnahme Code für netradio - alles richtig?
Ja der funktioniert wunder bar bis jetzt. Hab die Stelle markiert, damit man es besser sehen kann. :mrgreen:
|
Re: Aufnahme Code für netradio - alles richtig?
Die Qualität der .mp3 Dateien ist irgendwie schlecht, obwohl die Bitrate nicht verändert wird. :gruebel:
Und die Aufnahme ist zeitversetzt. :gruebel: |
Re: Aufnahme Code für netradio - alles richtig?
So funktioniert halt das Aufnehmen mit der bass.dll. Beim Erzeugen des Bass-Streams (nicht in dem Codeausschnitt) übergibst du eine StatusProc-Prozedur, an die die empfangenen Daten des Streams durchgereicht werden. Wenn man die in einen Stream schreibt, hat man hinterher ne entsprechende Datei.
Dass die Qualität schlecht ist, könnte an der niedrigen Bitrate des Streams liegen. Es gibt auch welche mit einer Bitrate von 192 und mehr kbit/s. Zeitversetztes Aufnehmen (d.h. ein paar Sekunden) ist afaik auch normal, da sich wohl nicht genau steuern lässt, wann genau die bass.dll einen neuen Datenblock an die StatusProc sendet. |
Re: Aufnahme Code für netradio - alles richtig?
Zitat:
|
Re: Aufnahme Code für netradio - alles richtig?
Wenn es funktioniert, und sich die Datei so anhört, wie sich die Musik auch live anhört: Ja. :zwinker:
Du könntest höchstens an Stelle des MemoryStreams direkt einen Filestream nehmen, dann ist das Lied zumindest teilweise auf Platte, wenn dein Programm zwischendurch mal abstürzt. |
Re: Aufnahme Code für netradio - alles richtig?
Zitat:
|
Re: Aufnahme Code für netradio - alles richtig?
Das mit der Qualität hat sich geklärt, es lag an meinem Player und die Zeitverschiebung ist eigentlich nicht so drastisch, +/- ca. 5 Sek. kann man verkraften. :)
|
Re: Aufnahme Code für netradio - alles richtig?
Kann mir jemand nen Denkanstoß geben, wie ich die Aufnahme mit FileStream realisieren soll? :gruebel:
Hab schon vieles versucht, aber irgendwie läuft bei mir nix. :wall: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:07 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