[Etoys] OggVorbisCodec crash
Karl
karl.ramberg at comhem.se
Tue Dec 11 03:07:13 EST 2007
Ah, that explains a bit :-)
Thanks.
Karl
Takashi Yamamiya wrote:
> Hi Karl,
>
> 2007/12/9, karl <karl.ramberg at comhem.se>:
>
>> This method returns a SequentialSound with several SampledSounds
>> compressed with OggVorbis in it. It's not optimal as you can notice the
>> cut between the each sound.
>>
>
> Good!
>
> But the reason why the sound was cut is Vorbis encoder has a state. It
> is better to reuse same encoder in a sequence. I'll put such method
> into the stream (I'd rather prefer the rewrite #compressWith: itself).
>
> SampledSound>>compressWithOggVorbisCodec
> | newSound sound samplesPerSecond size buffer startIndex stopIndex
> tempSound codec |
> codec := OggVorbisCodec new.
> size := self samples size.
> startIndex := 1.
> newSound := SequentialSound new.
> samplesPerSecond := (self computeSamplesForSeconds: 1) size.
> 1
> to: size
> by: samplesPerSecond
> do: [:i |
> ((stopIndex _ startIndex + samplesPerSecond) > size)
> ifTrue:[ stopIndex _ size].
> buffer := self samples copyFrom: startIndex to: stopIndex.
> sound := SampledSound samples: buffer samplingRate: self
> samplingRate.
> tempSound := codec compressSound: sound.
> newSound
> add: tempSound.
> startIndex := stopIndex + 1].
> ^ newSound
>
> Cheers,
> - Takashi
>
>
More information about the Etoys
mailing list