Windows Phone 7での音声(オーディオ)録音に関して、次の問題が発生しています。
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)
{
}
}
ストリームを隔離されたストレージに保存して再生すると、音量が非常に小さくなり、品質も良くありません。
それで
- ボリュームを増幅できますか?
- ビットレートを上げることはできますか?
- Fadin-Fadoutを実行できますか?
これら3つすべてがWindowsPhone7で不可能な場合、これらすべての操作を実行するために利用できるサードパーティのAPIはありますか?
前もって感謝します