使用SpeechSynthesizer类可以实现文本朗读功能,位于 Windows.Media.SpeechSynthesis命名空间。有了它我们就可以实现有声小说了,是不是很爽。下面给出一个将文本块的内容朗读出来的例子,记得在应用的功能里要勾选 麦克风。
关于SpeechSynthesizer类的详细说明请参考:
mainpage页面布局如下:
<Grid>
<StackPanel >
<TextBox x:Name=”txtToSay” Width=”″ Height=”″ Margin=” ″ TextWrapping=”Wrap”/>
<Button Content=”开始朗读” HorizontalAlignment=”Center” Click=”OnClick”/>
</StackPanel>
<MediaElement x:Name=”mdPlayer” Width=”″ Height=”″ AutoPlay=”True”/>
</Grid>
后台代码如下:
private async void OnClick(object sender, RoutedEventArgs e)
{
if (string.IsNullOrWhiteSpace(txtToSay.Text)) return;
SpeechSynthesizer speech = new SpeechSynthesizer();//实例化对象
// 朗读文本
SpeechSynthesisStream stream = await speech.SynthesizeTextToStreamAsync(txtToSay.Text);//将文本框的内容转化为语音流输出
if (stream != null)
{
this.mdPlayer.SetSource(stream, stream.ContentType);//将语音流设为MediaElement的源。
} }
关于MediaElement的SetSource方法请查看:http://msdn.microsoft.com/zh-cn/library/windows/apps/xaml/br244338.aspx