1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53:
| var mixer: Integer = 0; encoder: HENCODE; stream: INteger;
procedure TForm1.FormCreate(Sender: TObject); begin [...] BASS_Init(1,44100,0,Application.Handle,0); [...] end;
procedure TForm1.Start; begin stream:=BASS_StreamCreateFile(false,PChar(ExtractFilePath(ParamStr(0))+'sound2.mp3'),0,0,BASS_STREAM_DECODE or BASS_UNICODE); mixer:=BASS_Mixer_StreamCreate(44100, 2, BASS_SAMPLE_FLOAT); ok := BASS_Mixer_StreamAddChannel(mixer, stream, BASS_SAMPLE_FLOAT); if not ok then showmessage(inttostr(BASS_ErrorGetCode())); BASS_ChannelSetAttribute(mixer, BASS_ATTRIB_VOL, 0); [...]
Command := 'lame -r -x -s 44100 -b '+PChar(inttostr(Bitrate))+' -'; Encoder := BASS_Encode_Start(mixer, PChar(Command), BASS_ENCODE_NOHEAD or BASS_ENCODE_AUTOFREE, nil, 0);
if not BASS_Encode_CastInit(Encoder, PAnsiChar(AnsiString(ed_server.text)), PAnsiChar(AnsiString(ed_Password.text)), content, PAnsiChar(AnsiString(ed_Name.text)), PAnsiChar(AnsiString(ed_url.text)), PAnsiChar(AnsiString(ed_Genre.text)), PAnsiChar(AnsiString(ed_desc.Text)), nil, bitrate, chk_Public.Checked) then begin BassError('Couldn''t setup connection with server'); BASS_ChannelStop(mixer); mixer := 0; exit; end; btn_Start.Caption := 'Stop'; BASS_ChannelPlay(mixer, FALSE); ed_server.Enabled := false; ed_password.Enabled := false; ed_Name.Enabled := false; ed_genre.Enabled := false; ed_url.Enabled := false; ed_desc.Enabled := false; chk_public.Enabled := false; chk_MP3.Enabled := false; chk_OGG.Enabled := false; cb_Bitrate.Enabled := false; ed_TrackTitle.Enabled := true; ed_Tracktitle.Color := clwhite; LevelTimer.Enabled := true; BASS_Encode_SetNotify(encoder, @EncoderNotify, @Win); |