Я занимаюсь разработкой приложения для Windows Phone 7, которое читает текст и произносит текст.
Библиотека micsoroft - interop.speechlib.dll преобразует мой текст в буфер (байтовый массив).И SoundEffect плагин Windows Phone 7 говорит об этом.
Это все работает нормально, но иногда это создает проблемы, вызывая ошибку ниже -
Неверный буфер.Убедитесь, что длина буфера не равна нулю и соответствует требованию выравнивания блоков для аудиоформата
Код для выступления приведен ниже:
SoundEffect se = new SoundEffect(buffer, 15000, AudioChannels.Stereo);
FrameworkDispatcher.Update();
se.Play();
Пожалуйста, предложите мне, гдеЯ делаю неправильно.
Редактировать Из какого-то теста я пришел к выводу, что основной причиной проблемы является генерация буфера.Ниже приведен код для создания буфера из текста.
using (MemoryStream ms = new MemoryStream())
{
SpeechLib.SpVoice oVoice = new SpeechLib.SpVoice();
SpeechLib.SpFileStream cpFileStream = new SpeechLib.SpFileStream();
cpFileStream.Open(filename, SpeechLib.SpeechStreamFileMode.SSFMCreateForWrite, false);
oVoice.AudioOutputStream = cpFileStream;
oVoice.Speak(value, SpeechLib.SpeechVoiceSpeakFlags.SVSFDefault);
oVoice = null;
cpFileStream.Close();
cpFileStream = null;
byte[] ImageData=File.ReadAllBytes(filename);
return ImageData;
}
Спасибо, Нареш Горадара