我在Silverlight应用程序中遇到了一个奇怪的行为,并且在尝试了很多小时后无法解决它。
由于我无法在我的代码中访问AudioFormat
的内部构造函数(即使使用反射导致Silverlight安全策略引发异常),如何更改音频格式(在我的类中派生自AudioSink
类。现在,我按照以下方式覆盖MemoryAudioSink
类中的方法:
protected override void OnFormatChange(AudioFormat audioFormat)
{
if (this.audioFormat == null)
{
this.audioFormat = audioFormat;
}
else
{
throw new InvalidOperationException();
}
}
我无法创建新的AudioFormat(没有ctor可用),默认的AudioFomat每秒有16000个样本,没有setter。我想以Mono(Channels = 1),8 bit(Bits Per Sample = 8),8k(Samples Per Second = 8000)格式录制和保存音频。
另外,我使用Cool Edit成功录制了8bit 8k音频,以确保我的声卡支持它。
如此简单地说,我可以使用我的自定义AudioFormat录制音频,还是应该在Silverlight中录制音频,将其传递给我的WebApp,然后使用第三方库(我不知道的话)将其转换为我的自定义格式任何)?
答案 0 :(得分:0)
此链接可能对您有所帮助:Silverlight 4 audio recording and upload to server 讽刺我的愚蠢我不知道如何格式化代码,在我给你的那个链接中,寻找线AudioFormat desiredAudioFormat = null;去那里,你需要下一个foreach