首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SpeechSynthesizer进入故事板

SpeechSynthesizer进入故事板
EN

Stack Overflow用户
提问于 2013-07-29 01:09:35
回答 1查看 190关注 0票数 2

我已经创建了一个有一些移动元素/对象的故事板,我想在一个故事板中添加一个SpeechSynthesizer。

这有可能吗?我正在研究C#。

代码语言:javascript
复制
Storyboard myStoryboard=new Storyboard();

SpeechSynthesizer reader = new SpeechSynthesizer();  
reader.Speak("This is my first speech project"); /* instead of speak I want 
                                                    to add this into the storyboard
.....

myStoryboard.Children.Add(readerAnimation);

还是有一种方法可以将音频添加到故事板中?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-07-29 03:38:06

如果您愿意使用音频文件,则可以使用MediaTimeLine类。然后,您可以使用其中一个SetOutputToWaveFile方法来创建文件。

保存从第二链接修改的waveFile:

代码语言:javascript
复制
using (SpeechSynthesizer synth = new SpeechSynthesizer())
{
    synth.SetOutputToWaveFile(@"C:\temp\Sample.wav");
    PromptBuilder builder = new PromptBuilder();
    builder.AppendText("Hello World !");
    synth.Speak(builder);
}

Xaml

从第一个链接中修改以播放该文件

代码语言:javascript
复制
<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>

请注意,一旦Storyboard播放该文件,它将维护对它的锁定。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17914655

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档