2013-05-21 3 views
1

일부 오디오 편집을 수행하기 위해 BASS library을 사용하려고합니다. 누군가가 라이브러리에 익숙하면 잘 도와 줄 수 있습니다.BASS 라이브러리에서 StreamCreateFile의 offset 매개 변수를 사용하는 방법은 무엇입니까?

내가 사용 기능은 내가 모든 MP3 파일로 작업하고, Bass.net 래퍼를 사용하고, 약간의 배경에 대한

Bass.BASS_StreamCreateFile(filename, offset, length, flags); 

입니다.

int baseStream = Bass.BASS_StreamCreateFile(filename, startTimeBytes, durationBaseBytes, BASSFlag.BASS_STREAM_PRESCAN | BASSFlag.BASS_STREAM_DECODE | BASSFlag.BASS_SAMPLE_FLOAT); 

오프셋 (startTimeBytes)가 0 일 때마다

는, 스트림이 잘 생성되지만 오프셋 (offset)가 제로가 아닌 때마다,이 메소드는 0을 반환하고 : 내가 함께이 기능을 사용하고 실제 코드는 주어진 오류 코드는 BASS_ERROR_FILEFORM입니다. 그러나, 사용 된 파일 오프셋 (오프셋 = 0) 않고 제대로 작동합니다.

아마도 내가 사용하고있는 플래그에 문제가 있습니까?

+0

미디어 파일을 추출하기 위해 합성 파일에서 오프셋을 지정하는 것처럼 들리는군요. 여러 파일을 순차 형식으로 저장하는 컨테이너 파일에 편리합니다. 아마 당신이 그걸로 무엇을 하려는지는 아닙니다. 또는 Fezzik의 말을 바꾸기 위해 :'나는 그것이 당신이 생각하는 바를 생각하지 않는다. ' – Corey

답변

1

mp3 파일에 오프셋이없는 프레임이 포함되어 있습니다. 따라서 0 오프셋을 사용하십시오.
스트림의 재생 위치를 설정하려면 BASS_ChannelSetPosition()을 사용하십시오.

  1. 오프셋 = 0;
  2. BASS_ChannelSeconds2Bytes()을 사용하여 채널의 형식에 따라 시간 (초) 위치를 바이트로 변환합니다.
  3. 위치를 BASS_ChannelSetPosition()BASS_POS_BYTE 모드로 설정하십시오.