09-16-2009 04:19 PM
I am following:
and I am able to record PCM and AMR on my curve 8900 without problems. However, when I attempt to record in GSM format, I am getting data that I do not recognize. The first 32 bytes of the data I am getting is always
A0 00 00 00 00 00 00 00 00 00 00 00 04 01 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00
This doesn't make any sense because a normal 33-byte GSM 6.10 frame should at the very least begin with 0xD in the high nibble of it's first byte. Is the gsm data wrapped up in some container I don't recognize? The audio file is growing as I record longer and the first 32-bytes are always as above so its not just garbage data. I am just recording from a player with either capture://audio?encoding=gsm or capture://audio?encoding=x-gsm.
My curve OS version is 22.214.171.124 and I have tried compiling with components packages 4.6 and 4.7 with the same results...
09-16-2009 09:22 PM
02-22-2010 04:28 PM
Here is a sample. It can be played by the BB media player but not WavePad.
The file name is Recording.gsm
Please let us know what you can find.
02-22-2010 06:00 PM
I've had a look at it and had some outside assistance from someone who's much more familiar with GSM than I; it seems to be WAV-packed GSM with a non-WAV header attached to it (14787 - 32 bytes = 14755 bytes, which is a multiple of 65 bytes, two GSM frames).
02-22-2010 06:05 PM
So. If I replace that header with a wav header, windows media player should be able to play it. No? As a matter of fact, I have tried that with WavePad (which can read raw gsm), but it didn't work out. I might unpack it and try again. Thanks for helping.
02-22-2010 07:41 PM
I know its been mentioned that RIM uses a custom format for recording and when you do RecordControl.commit() it converts it to the format requested. I have no experience with it but I know there was someone on these forums, can't remember who/what post, that had seemingly figured it out but he specified that he wasn't giving it out for free.
02-22-2010 08:18 PM - edited 02-22-2010 09:01 PM
So RIM is keeping it a secret. Not a very good business practics
-- when you do RecordControl.commit() it converts it to the format requested
Even if this works. It won't help my situation as I am using a custom output stream to send the recorded data away in realtime.