728x90
본인 소스 일부에서 꺼냈으니 도움 되시길 바랍니다.
mp3 Tag Hex 바이너리 넣고싶다면 간단하게 ID3Tag 라이브러리 이용하시면 저장됩니다
저는 오디오 커팅해서 생성한 파일을
원본 파일 바이너리 Hex값이 mp3인지 flac파일인지 구별하여 mp3파일 경우
ID3Tag를 생성한 파일에 입혀 앨범사진과 타이틀 및 아티스트만 넣어놨습니다.
uses bass;
procedure TForm1.AudioCutting(TmpDir, StartTime, EndTime : string);
var Chan : HSTREAM; //TmpDir 파일경로; StartTime := 00:01:10.480 EndTime := 00:01:20.480;
Time : int64;
begin
Chan := BASS_StreamCreateFile(False, PChar(TmpDir), 0, 0,BASS_UNICODE or BASS_STREAM_DECODE);
Time := Trunc((StrToDateTime(StartTime)*86400));
BASS_ChannelSetPosition(Chan, BASS_ChannelSeconds2Bytes(Chan, Time), BASS_POS_BYTE);
var StartPosition := BASS_StreamGetFilePosition(Chan, BASS_FILEPOS_START) + BASS_StreamGetFilePosition(Chan, BASS_FILEPOS_CURRENT);
Time := Trunc((StrToDateTime(EndTime)*86400));
BASS_ChannelSetPosition(Chan,BASS_ChannelSeconds2Bytes(Chan, Time), BASS_POS_BYTE);
var EndPosition := BASS_StreamGetFilePosition(Chan, BASS_FILEPOS_START) + BASS_StreamGetFilePosition(Chan, BASS_FILEPOS_CURRENT);
BASS_StreamFree(Chan);
var FileStream := TBufferedFileStream.Create(TmpDir,fmShareDenyNone); //TmpDir mp3 파일 경로
var FileSplitFile := TBufferedFileStream.Create(ExtractFileName(TmpDir) + '(HighLight)' + ExtractFileExt(TmpDir),fmCreate);
FileStream.Position := StartPosition;
var Max := EndPosition - StartPosition;
FileSplitFile.CopyFrom(FileStream,Max);
FileStream.Free;
FileSplitFile.Free;
end;
728x90
'Delphi 예제 자료' 카테고리의 다른 글
델파이 ID3v2Library에서 타이틀 및 앨범 한글 글씨 깨짐 방지 (0) | 2022.01.18 |
---|---|
Refletive Injection DLL쪽 C 언어 소스를 델파이 번역 (소소한 강의) (0) | 2022.01.05 |
C의 구조체와 공용체를 델파이로 간단 설명. (2) | 2021.12.18 |
체크박스 컴포넌트만 찾아서 전부 체크 및 해제 예제. (0) | 2021.12.13 |
토크온 리방 용도 부모와 자식(FindWindow 와 FindWindowEx) 참고용 소스 (0) | 2021.12.13 |
Character set UTF8 Decode 번역 (0) | 2021.12.13 |
asm(어셈블리어) ntdll.dll Base값과 Kernel32.dll Base값 쉽게 구하기. (0) | 2021.12.13 |
델파이(delphi) Refletive Dll Injection + Loader (0) | 2021.12.13 |
댓글