Я столкнулся со следующей проблемой, связанной с записью голоса (аудио) в Windows Phone 7.
Я записываю звук, используя класс Microphone, доступный в пространстве имен Microsoft.Xna.Framework.Audio. вот код -
Объявление переменной:
private Microphone mic = Microphone.Default;
private MemoryStream stream;
private const string FILE_NAME = "recording.mp3";
byte[] buffer;
Код нажатия кнопки записи-
mic.BufferDuration = TimeSpan.FromSeconds(1);
buffer = new byte[mic.GetSampleSizeInBytes(mic.BufferDuration)];
// Create the event handler. I could have done an anonymous
// delegate here if I had so desired.
mic.BufferReady += new EventHandler<EventArgs>(mic_BufferReady);
stream = new MemoryStream();
mic.Start();
Код события готовности буфера ----------
void mic_BufferReady(object sender, EventArgs e)
{
mic.GetData(buffer);
// Write buffer to stream
stream.Write(buffer, 0, buffer.Length);
}
Код остановки кнопки -
private void btnStop_Click(object sender, RoutedEventArgs e)
{
dt.Stop();
btnStop.IsEnabled = false;
btnPlayRecording.IsEnabled = true;
mic.Stop();
//Writing stream into Storage
writeFile(stream);
}
private void writeFile(MemoryStream s, string name)
{
try
{
using (var userStore = IsolatedStorageFile.GetUserStoreForApplication())
{
if (userStore.FileExists(name))
{
userStore.DeleteFile(name);
}
using (var file = userStore.OpenFile(name, FileMode.CreateNew))
{
s.WriteTo(file);
}
}
}
catch (Exception ee)
{
}
}
Как только я сохраняю поток в изолированное хранилище и воспроизводю его, громкость очень низкая, и качество тоже не очень хорошее.
So
- Можем ли мы усилить Громкость?
- можно ли увеличить битрейт?
- Можем ли мы сделать Fadin-Fadout?
Если все эти три невозможны в Windows Phone 7, то есть ли какой-либо сторонний API для выполнения всех этих операций?
заранее спасибо