AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Aufnahme Code für netradio - alles richtig?
Thema durchsuchen
Ansicht
Themen-Optionen

Aufnahme Code für netradio - alles richtig?

Ein Thema von AlexII · begonnen am 9. Mai 2009 · letzter Beitrag vom 16. Mai 2009
Antwort Antwort
AlexII

Registriert seit: 28. Apr 2008
1.717 Beiträge
 
FreePascal / Lazarus
 
#1

Aufnahme Code für netradio - alles richtig?

  Alt 9. Mai 2009, 19:36
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;
  Mit Zitat antworten Zitat
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
 
Delphi XE Professional
 
#2

Re: Aufnahme Code für netradio - alles richtig?

  Alt 9. Mai 2009, 19:36
Hi!

Funktioniert der Code denn?
Was ist mit der markierten Stelle?


Ciao, Frederic
Frederic Kerber
  Mit Zitat antworten Zitat
AlexII

Registriert seit: 28. Apr 2008
1.717 Beiträge
 
FreePascal / Lazarus
 
#3

Re: Aufnahme Code für netradio - alles richtig?

  Alt 9. Mai 2009, 19:41
Ja der funktioniert wunder bar bis jetzt. Hab die Stelle markiert, damit man es besser sehen kann.
  Mit Zitat antworten Zitat
AlexII

Registriert seit: 28. Apr 2008
1.717 Beiträge
 
FreePascal / Lazarus
 
#4

Re: Aufnahme Code für netradio - alles richtig?

  Alt 9. Mai 2009, 19:43
Die Qualität der .mp3 Dateien ist irgendwie schlecht, obwohl die Bitrate nicht verändert wird.
Und die Aufnahme ist zeitversetzt.
  Mit Zitat antworten Zitat
Benutzerbild von Gausi
Gausi

Registriert seit: 17. Jul 2005
885 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Aufnahme Code für netradio - alles richtig?

  Alt 9. Mai 2009, 20:07
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.
The angels have the phone box.
  Mit Zitat antworten Zitat
AlexII

Registriert seit: 28. Apr 2008
1.717 Beiträge
 
FreePascal / Lazarus
 
#6

Re: Aufnahme Code für netradio - alles richtig?

  Alt 9. Mai 2009, 20:12
Zitat von Gausi:
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.
Verzeih hab das nicht verstanden, ist der Code ok so, oder wie?
  Mit Zitat antworten Zitat
Benutzerbild von Gausi
Gausi

Registriert seit: 17. Jul 2005
885 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: Aufnahme Code für netradio - alles richtig?

  Alt 9. Mai 2009, 20:19
Wenn es funktioniert, und sich die Datei so anhört, wie sich die Musik auch live anhört: Ja.

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.
The angels have the phone box.
  Mit Zitat antworten Zitat
AlexII

Registriert seit: 28. Apr 2008
1.717 Beiträge
 
FreePascal / Lazarus
 
#8

Re: Aufnahme Code für netradio - alles richtig?

  Alt 9. Mai 2009, 20:21
Zitat von Gausi:
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.
Aha.... und wie geht das?
  Mit Zitat antworten Zitat
AlexII

Registriert seit: 28. Apr 2008
1.717 Beiträge
 
FreePascal / Lazarus
 
#9

Re: Aufnahme Code für netradio - alles richtig?

  Alt 9. Mai 2009, 20:42
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.
  Mit Zitat antworten Zitat
AlexII

Registriert seit: 28. Apr 2008
1.717 Beiträge
 
FreePascal / Lazarus
 
#10

Re: Aufnahme Code für netradio - alles richtig?

  Alt 16. Mai 2009, 12:42
Kann mir jemand nen Denkanstoß geben, wie ich die Aufnahme mit FileStream realisieren soll?

Hab schon vieles versucht, aber irgendwie läuft bei mir nix.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:38 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz