gdzie zmienic znak by przestal dzialac plik mp3 ?
tak bym mogl potem ort! nastepna zmiana dzialanie pliku
gdzie zmienic znak by przestal dzialac plik mp3 ?
tak bym mogl potem ort! nastepna zmiana dzialanie pliku
Hmm a próbowałeś pokombinować? :-)
no <ort>na razie </ort>jestemn na 12 znaku i nic zlego sie nie dzieje
chcailbym znalezc mjsce ort! jest np. dlugosc muzyki
Trudno ci będzie rozwalić plik mp3, gdyż składa się on z wielu niezależnych od siebie ramek. rozwalisz jedną ramkę, to odtwarzacz pomija ją i bierze następne.
ok a jakbym przekonwertowal to na wav albo cos takeigo to bym mogl tak zrobic ?
chche <ort>po prostu</ort> zrobic cos takiego by zapisac na cd program i pliki dzwiekowe tak by same nie dzialaly a za pomoca programu tak
W Wavie jak pomieszasz w odpowiednich polach nagłówka, wtedy utrudnisz życie. Oczywiście będzie można to wczytać do programu do obróbki dźwięku jako Raw PCM, odciąć trzask wynikający ze starego nagłowka i nagrać na nowo. Nagłowek wav podawałem na forum, szukaj TWaveHeader.
AssignFile(FromF, '1.mp3');
Reset(FromF, 1);
begin
AssignFile(ToF, '2.mp3');
Rewrite(ToF, 1);
repeat
BlockRead(FromF, Buf, SizeOf(Buf), NumRead);
tek:=buf;
tek:=koduj_not(tek);
for c:=0 to length(tek)-1 do
begin
buf[c]:=tek[c];
end;
BlockWrite(ToF, Buf, NumRead, NumWritten);
until (NumRead = 0) or (NumWritten <> NumRead);
CloseFile(FromF);
CloseFile(ToF);
czy da sie to troche prosciej napisac bo troche wolno dziala
czy do tabeli (of char) da sie wpisac stringa szybciej niez w <ort>pentli </ort>for ?
przecież obrabiasz kilka MB dnych - jakim cudem to ma działać szybko?
poza tym robisz kilka błędów (zakładam, że buf : array[0..ileśtam] of byte):
AssignFile(FromF, '1.mp3');
Reset(FromF, 1);
begin
AssignFile(ToF, '2.mp3');
Rewrite(ToF, 1);
repeat
BlockRead(FromF, Buf, SizeOf(Buf), NumRead);
for c:=0 to length(buf)-1 do buf := not buf[i];
BlockWrite(ToF, Buf, NumRead, NumWritten);
until (NumRead = 0) or (NumWritten <> NumRead);
CloseFile(FromF);
CloseFile(ToF);
for c:=0 to length(buf)-1 do
begin
buf[c]:=not buf[c];
end;
po drugim okrazeniu wartosc c:= -166700
czemu?