Am 22.02.2009 um 13:16 schrieb Klaus Füller:

1. Problem:

Ich versuche, einen Sound über das Netz zu übertragen (an ein nicht- Squeak-System). Dazu will ich den Sound in ein ByteArray wandeln. Also probiere ich es zunächst rein lokal (ohne Netz):

sound play.             **> Sound spielt (wenn auch zu schnell)
sound samplingRate.             --> 22050
sound                           --> a SequentialSound

Lösung, allerdings mit dem Nachteil, dass beim Empfang die samplingRate nicht mehr bekannt ist und dass der Sound in Mono gewandelt wird ... (die Envelopes gehen verloren ...)

Statt
str := WriteStream on: ByteArray new.   --> a WriteStream a ByteArray()
sound storeAIFFSamplesOn: str.          --> a SequentialSound
str contents size                       --> 42586

wstr := ReadStream on: str contents     --> aReadStream aByteArray .......
wstr contents size                      --> 42586

r := AIFFFileReader new.                --> an AIFFFileReader
r readFromStream: wstr mergeIfStereo: false skipDataChunk: false Kein Gemeckere
r sound                                 --> a SampledSound           (???)
r sound play            **> Unverständliches Rauschen!

schreibt man einfacher:

samples := sound samples asByteArray

rsamples := SoundBuffer fromByteArray: samples.
rsound := SampledSound samples: rsamples samplingRate: 22050.
rsound play

Was mache ich falsch??

2. Problem (weniger wichtig):

Ich nehme den Sound mit dem SoundRecorder auf. Allerdings spielt er viel schneller ab als ich aufnehme?

Klaus

Antwort per Email an