C# 将流转换为WMA
我正在Silverlight中创建一个需要读取其内容的应用程序。我使用WCF服务将内容发送到服务器端,然后有这个代码将文本合成为语音C# 将流转换为WMA,c#,.net,silverlight,audio,stream,C#,.net,Silverlight,Audio,Stream,我正在Silverlight中创建一个需要读取其内容的应用程序。我使用WCF服务将内容发送到服务器端,然后有这个代码将文本合成为语音 public class SpeechService { [OperationContract] public byte[] StartSpeak(string Text) { MemoryStream ms = new MemoryStream(); using (System.Speech.Synthesis.SpeechSynth
public class SpeechService
{
[OperationContract]
public byte[] StartSpeak(string Text)
{
MemoryStream ms = new MemoryStream();
using (System.Speech.Synthesis.SpeechSynthesizer synhesizer = new System.Speech.Synthesis.SpeechSynthesizer())
{
synhesizer.SelectVoiceByHints(System.Speech.Synthesis.VoiceGender.NotSet, System.Speech.Synthesis.VoiceAge.NotSet, 0, new System.Globalization.CultureInfo("pl-PL"));
synhesizer.SetOutputToWaveStream(ms);
synhesizer.Speak(Text);
}
return ms.ToArray();
}
在客户端,我使用以下代码:使用MediaElement向客户端播放创建的声音
它可以工作,但我需要调整它,因为生成的流相当大-2分钟的新闻超过8MB。在过去的几天里,我一直在浏览网页,寻找两个问题的解决方案:
1.使用wcf将音频数据流传输到Silverlight
2.在将音频发送到客户端之前压缩音频
至于问题1,我不知道如何实现它:/我将使用任何帮助或想法。
2号最困难的事情是我无法将输出声音保存为文件。我需要做编码的飞行和发送压缩的声音到客户端。据我所知,最好的办法是将is编码为AAC或WMA,因为MediaElement支持这两者
我将感谢任何帮助。谢谢 值得一看Windows Azure媒体服务
它提供了“实时流媒体”,您可以将其与音频一起使用。我已经为点播(on-demand,但不是直播)和流媒体(streaming)使用过这个,而且它真的很容易做到。只需将您的媒体“上传到云”,它就会编码并为您提供一个端点。然后,您可以使用Silverlight媒体元素中的此端点来获取流媒体。真的没有人可以帮忙吗(