Also es geht mir bei dem ganzen Filename Dingens ja darum, dass wenn man in meinem StreamZ eine Aufnahme startet (über BassdllPlayer), dass die Aufnahme dann heißt wie das aktuelle Lied. Über eine Funktion liefert BassdllPlayer den Titel und Interpreten der Online Streams. Diesen zeige ich direkt in einem Statusbarpanel an. Über die Funktion StartRecording verusche ich den Dateinamen zu übergeben, doch das klappt bei den Titeln ja irgendwie nicht. Viel mehr Code als die Zeile die ich gepostet habe steckt da nicht hinter. Hier mal die Funktion StartRecording von Bassdllplayer:
Delphi-Quellcode:
procedure TBassdllPlayer.StartRecording(Input: integer; FileName: string);
var
i: Integer;
begin
//F ile Stream
WaveStream := TFileStream.Create(FileName, fmCreate);
if WaveStream.Size > 0 then
begin // free old recording
BASS_StreamFree(Channel);
end;
// generate header for WAV file
WaveHdr.riff := 'RIFF';
WaveHdr.len := 36;
WaveHdr.cWavFmt := 'WAVEfmt ';
WaveHdr.dwHdrLen := 16;
WaveHdr.wFormat := 1;
WaveHdr.wNumChannels := 2;
WaveHdr.dwSampleRate := 44100;
WaveHdr.wBlockAlign := 4;
WaveHdr.dwBytesPerSec := 176400;
WaveHdr.wBitsPerSample := 16;
WaveHdr.cData := 'data';
WaveHdr.dwDataLen := 0;
WaveStream.Write(WaveHdr, SizeOf(WAVHDR));
i := 0;
while BASS_RecordSetInput(i, BASS_INPUT_OFF) do
begin
i := i + 1;
end;
BASS_RecordSetInput(input, BASS_INPUT_ON);
// start recording @ 44100hz 16-bit stereo
recordchannel := BASS_RecordStart(44100, 2, 0, @RecordingCallback, 0);
if recordchannel = 0 then
begin
ShowMyMessage('Die aufnahme kann nicht gestarted werden.', TRUE);
WaveStream.Free;
end;
isRecording := True;
end;