2011-11-15 3 views
2

BASS.dll 라이브러리를 사용하여 내가 원하는 일은 BASS_StreamCreateFile을 사용하여 MP3 파일을 다른 부분으로 "리디렉션"하는 것입니다. MP3 또는 WAVe). 나는 어떻게 시작 해야할지 모른다? 임, 답변을 찾으려면 도움을 사용하려고하지만, 아직 아무것도. 이 스트림을 재생할 수 있습니다. 필요한 데이터를 읽으십시오. 이제 예를 들어 2 시부 터 2시 10 분 (또는 위치에 따라) ile을 복사해야합니다. 아이디어는 어떻게 시작해야합니까?델파이 : BASS.dll - MP3 파일의 일부를 다른 파일로 복사하는 방법

감사합니다. J.K.

+1

1) 정확한 위치를 찾으십시오. 2) 버퍼에 데이터를 복사하십시오. 3) 출력 파일을 작성하십시오. 4) 버퍼를 출력 파일에 복사하십시오. 어느 부분에 문제가 있습니까? –

+0

파일의 일부를 하드 카피하고 싶지 않습니다. MP3의 일부를 다른 MP3로 복사하고 싶습니다. 나는 단지 X 바이트를 복사 할 수 없다. –

답변

3

글쎄, 나는 BASS를 구체적으로 모르지만 일반적으로 음악 재생 및 압축 된 데이터 형식에 대해 조금 알고 있으며 적절하게 데이터를 복사하는 것은 중간 단계를 포함합니다. 다음은 할 일입니다.

  1. 파일을 열고 올바른 위치를 찾으십시오.
  2. 오디오를 메모리 내 버퍼로 디코딩하십시오. 버퍼의 크기는 (LengthInSeconds * SamplesPerSecond * Channels * BytesPerSample) 바이트 여야합니다. 10 초의 CD 품질 오디오라면 10 * 44100 * 2 (스테레오) * 2 (16 비트 오디오) = 1764000 바이트입니다.
  3. 디코딩 된 데이터의이 버퍼를 가져 와서 MP3 인코딩 기능에 제공하고 결과 MP3를 파일에 저장합니다.

BASS가 외부 버퍼로 디코딩하고 버퍼를 MP3로 인코딩하는 기능을 가지고 있다면, 좋습니다. 당신이해야 할 일은 사용할 것을 알아내는 것뿐입니다. 그렇지 않은 경우 MP3 인코딩 및 디코딩을위한 다른 라이브러리를 찾아야합니다.

또한주의하십시오. generational loss. MP3는 손실 압축을 사용하므로 데이터를 여러 번 압축 해제하고 다시 압축하면 음질이 떨어집니다.

+0

그게 좋은 지적이야, 고마워. 시도해보십시오. Ill는 또한 이것을 위해 다른 라이브러리를 찾으려고 노력합니다. 그리고 나쁘게 당신에게 알리십시오 - 그것이 작동한다면 악이 대답을 받아들입니다. –