Если вы желаете использовать аудиофайл, вы можете использовать класс MediaTimeLine
. Затем вы можете использовать один из методов SpeachSynthesizer's SetOutputToWaveFile
для создания своего файла.
Сохранение waveFile Измененный 2 Ссылки:
using (SpeechSynthesizer synth = new SpeechSynthesizer())
{
synth.SetOutputToWaveFile(@"C:\temp\Sample.wav");
PromptBuilder builder = new PromptBuilder();
builder.AppendText("Hello World !");
synth.Speak(builder);
}
Xaml
модифицированном от первой Ссылки для воспроизведения файла
<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="100" Width="200">
<StackPanel Background="Black">
<Label Name="clickMe" Content="Click Me" Foreground="White" FontFamily="Arabic Typesetting" FontSize="20" HorizontalContentAlignment ="Center" />
<MediaElement Name="myMediaElement" Width="0" Height="0" />
<StackPanel.Triggers>
<EventTrigger RoutedEvent="FrameworkElement.MouseDown" SourceName="clickMe">
<EventTrigger.Actions>
<BeginStoryboard Name= "myBegin">
<Storyboard x:Name="myStoryBoard" SlipBehavior="Slip">
<MediaTimeline Source="C:\temp\Sample.wav" Storyboard.TargetName="myMediaElement" />
</Storyboard>
</BeginStoryboard>
</EventTrigger.Actions>
</EventTrigger>
</StackPanel.Triggers>
</StackPanel>
</Window>
Имейте в виде, что когда-то Раскадровка играет файл, он будет поддерживать блокировку.
SpeechSynthesizer Я не элемент Framework, поэтому вы не можете его оживить, вы просто ищете способ анимировать текст на экране? –
Нет. Я хочу включить SpeechSynthesizer в раскадровку. В принципе у меня есть раскадровка, которая включает в себя множество анимаций. Я хочу добавить в него также SpeechSynthesizer. – galaxias
и что вы ожидаете, даже если бы вы могли добавить его, ничего не получится, SpeechSynthesizer - это просто класс, –