Q&A

  • blob 필드의 wav 데이타 일부분만 실행시키는 방법?
blob 필드의 wav 데이타를 읽어서

실행하는데 전체를 실행시키지 않고

일부분만 실행시키는 방법이 있을까요?



예를 들어 5초짜리 wav 데이터에서

2초부분 부터 4초 부분의 구간만 실행할수 있는 방법은..

아래 소스는 DB의 WAVE을 읽어와서 전체를 연주하는 루틴임.



procedure TForm1.PlaySndFromDBClick(Sender: TObject);

var

s: TBlobStream;

FData: Pointer;

MemSize: integer;

begin

s := TBlobStream.create(Table1BINA, bmRead);

MemSize := S.Size;

FData := AllocMem(MemSize);

s.Read(FData^, MemSize);

sndPlaySound(FData, SND_MEMORY or SND_SYNC);

s.free;

FreeMem(FData, MemSize);

end;

2  COMMENTS
  • Profile
    김이삼 2001.08.12 08:17
    김이삼 wrote:

    > blob 필드의 wav 데이타를 읽어서

    > 실행하는데 전체를 실행시키지 않고

    > 일부분만 실행시키는 방법이 있을까요?

    >

    > 예를 들어 5초짜리 wav 데이터에서

    > 2초부분 부터 4초 부분의 구간만 실행할수 있는 방법은..

    > 아래 소스는 DB의 WAVE을 읽어와서 전체를 연주하는 루틴임.

    >

    > procedure TForm1.PlaySndFromDBClick(Sender: TObject);

    > var

    > s: TBlobStream;

    > FData: Pointer;

    > MemSize: integer;

    > begin

    > s := TBlobStream.create(Table1BINA, bmRead);

    > MemSize := S.Size;

    > FData := AllocMem(MemSize);

    > s.Read(FData^, MemSize);

    > sndPlaySound(FData, SND_MEMORY or SND_SYNC);

    > s.free;

    > FreeMem(FData, MemSize);

    > end;

  • Profile
    김이삼 2001.08.16 10:22
    고수님들 답변 좀 해 주세요!!!





    김이삼 wrote:

    > 김이삼 wrote:

    > > blob 필드의 wav 데이타를 읽어서

    > > 실행하는데 전체를 실행시키지 않고

    > > 일부분만 실행시키는 방법이 있을까요?

    > >

    > > 예를 들어 5초짜리 wav 데이터에서

    > > 2초부분 부터 4초 부분의 구간만 실행할수 있는 방법은..

    > > 아래 소스는 DB의 WAVE을 읽어와서 전체를 연주하는 루틴임.

    > >

    > > procedure TForm1.PlaySndFromDBClick(Sender: TObject);

    > > var

    > > s: TBlobStream;

    > > FData: Pointer;

    > > MemSize: integer;

    > > begin

    > > s := TBlobStream.create(Table1BINA, bmRead);

    > > MemSize := S.Size;

    > > FData := AllocMem(MemSize);

    > > s.Read(FData^, MemSize);

    > > sndPlaySound(FData, SND_MEMORY or SND_SYNC);

    > > s.free;

    > > FreeMem(FData, MemSize);

    > > end;