Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Отображение уровня микрофона, Одновременная запись и чтение Stream 
:(
    Опции темы
aush
  Дата 2.4.2011, 18:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 4.6.2007

Репутация: нет
Всего: нет



Работаю с девайсом на WinCE 5.0 и CF 3.5. Пытаюсь отобразить уровень входящего сигнала (максимальные значения сэмплов на отрезках записи) на микрофоне. Пользуюсь OpenNETCF.Media.WaveAudio.Recorder.RecordFor (описание).
Код
            _recorderMStream = new MemoryStream(65536);
            _recorder.RecordFor(_recorderMStream, 5, SoundFormats.Mono16bit11kHz);
            
            var buffer = new byte[2];
            var samples = new short[800];
            int max; int samplesL = 0; int b0; int b1;
            if (_recorderMStream.CanSeek) _recorderMStream.Seek(0, SeekOrigin.Begin);

            while (true)
            {
                if ((b0 = _recorderMStream.ReadByte()) == -1) break;
                buffer[0] = (byte)b0;

                if ((b1 = _recorderMStream.ReadByte()) == -1) break;
                buffer[1] = (byte)b1;

                samples[samplesL++] = BitConverter.ToInt16(buffer, 0);
                _blocksLengthFStreamWrtr.WriteLine(samples[samplesL - 1].ToString());

                if (samplesL == 800)
                {
                    max = 0;

                    for (var i = 0; i < SmplsToCalclvl; ++i)
                    {
                        if (samples[i] > max) max = samples[i];
                    }
                    max = max * 100 / 32768;

                    miclevelpbar.Invoke(new EventHandler(delegate { miclevelpbar.Value = max; }));

                    samplesL = 0;
                }
            }


Проблема в том, что из MemoryStream-а читается wav-header, а когда дело доходит со самих данных, ReadByte выдает -1.


Прошу помощи в выявлении ошибки.

Это сообщение отредактировал(а) aush - 2.4.2011, 23:28
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0454 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.