2011-12-21 1 views
0

Этот вопрос не дубликат Get data file from microphone in windows phone 7 или любые другие ссылки в нем.Получение wav-файла из Windows Телефонный микрофон

В Windows Phone, я записываю данные микрофона в следующем порядке:

  1. я начинаю Dispatcher.Update таймер для имитации цикла XNA игры.
  2. Я подписываюсь на Microphone.BufferReady и задаю продолжительность буфера. Затем я запускаю микрофон.

    // Event handler for getting audio data when the buffer is full 
    _microphone.BufferReady += MicrophoneBufferReady; 
    
    // Get audio data in 1/2 second chunks 
    _microphone.BufferDuration = TimeSpan.FromMilliseconds(100); 
    
  3. Затем, каждый раз, когда я получаю кусок аудио данных с микрофона, я записываю его в поток данных.

    // Retrieve audio data 
    _microphone.GetData(_buffer); 
    
    _stream.Write(_buffer, 0, _buffer.Length); 
    
  4. Всякий раз, когда запись закончена, поток данных сохраняются в изолированном хранилище в виде файла.

    var soundFileName = DateTime.Now.ToString("yyyyMMddHHmmss") + ".wav"; 
    using (var isStore = IsolatedStorageFile.GetUserStoreForApplication()) 
    { 
        using (var isfStream = new IsolatedStorageFileStream(soundFileName, FileMode.Create, isStore)) 
        { 
         isfStream.Write(data.ToArray(), 0, data.ToArray().Length); 
         isfStream.Close(); 
        } 
    } 
    

    Где data является MemoryStream проведение всех микрофонов буферы, которые были собраны во время записи.

Проблема в том, что фактически сохраненный файл не является wav-файлом. Если я скопирую его на рабочий стол с помощью ISETool, я не могу воспроизвести звук.

Как сохранить запись микрофона в файл, чтобы он сохранялся в формате .wav?

P.S. Я могу просто воспроизвести его на устройстве, если я прочитаю данные из IS и упакую его в экземпляр SoundEffect.

_soundInstance = new SoundEffect(_data, Microphone.Default.SampleRate, AudioChannels.Mono).CreateInstance(); 
+0

здесь вы можете найти код, как сохранить необработанные данные PCM в виде файла WAV: http://damianblog.com/2011/02/07/storing-wp7-recorded-audio-as-wav-format-streams/ – Roboblob

ответ

0

Формат буфера - необработанный PCM. Добавление заголовка WAV в начало файла является обязательным. Однако файл несжатый, и лучшим решением было бы застегнуть файл на устройстве (уменьшить его размер) и отправить в веб-службу для преобразования в сжатый WAV-формат.

 Смежные вопросы

  • Нет связанных вопросов^_^