0

我最近在Google search via speech in c#中发现了一段很棒的代码,它帮助我了解了如何将用户输入转换为程序可以读取的文本并将其转换为网络搜索。这我得到了工作。但现在我想看看我能走多远,但在过去的几周里,我完全迷失了方向。关于我对原版所做的一些调整,我有几个问题,这些调整不起作用。

            default;
            if (speech.ToLower().Contains("play song", "playlist", "play"))
            {
                string songName = speech.Replace(' ', ' ');
                songName = speech.Replace(' ', ' ');
                songName = System.Diagnostics.Process.Start(songName);
                string song = @"C:file location of song" + songName;
                System.Diagnostics.Process.Start(songName);
            }
            if (speech.ToLower().Contains("type"))
            {
                string wantedText = speech.Replace(' ', ' ');
                wantedText = speech.Replace(' ', ' ');
                wantedText = System.Diagnostics.Process.Start(wantedText);
                string song = wantedText;
                System.Diagnostics.Process.Start(wantedText);
            }
            break;

1:为了播放歌曲:

a) ("play song", "playlist", "play") 犯了一个错误,说“方法 'Contains' 没有重载需要 3 个参数”。我如何能够为此或任何未来的语音文本代码提出三个或更多参数?

b)据我所知,使用 System.Diagnostics.Process.Start 显然是行不通的。我不知道在这种情况下使用什么系统。

2:为了在活动窗口中输入直接类型:

a) 我缺乏 c# 知识阻碍了我推进这个想法的能力。我的第一个想法是将其视为在命令提示符下将语音输入文本,这是我可以做到的。但不是命令提示符,我希望它转到活动窗口中活动的闪烁文本光标,它可以是 Word 或任何搜索引擎。我也认为这可能与上面链接中的原始 URL 版本有类似的过程。

b)据我所知,使用 System.Diagnostics.Process.Start 显然是行不通的。我不知道在这种情况下使用什么系统。是 与问题 1b 相同的问题。我不知道这两个过程是否相同。

我希望我能很好地提出这些问题,并感谢您的帮助!

4

1 回答 1

2

您应该避免在一个问题中提出多个问题,因为它只会让人感到困惑。

1a)Contains检查一个字符串是否包含在另一个字符串中。如果要检查多个字符串,则需要多次调用它,如下所示:

var lower = speech.ToLower();
if (lower.Contains("play song") || lower.Contains("playlist") || lower.Contains("play"))
{ ... }

现在在这种特定情况下,您应该知道最后一个条件也满足前两个条件,因此您可以将条件缩短为:

if (speech.ToLower().Contains("play"))

这也将涵盖其他两种情况(因为“播放列表”和“播放歌曲”都包含字符串“播放”)。

1b) 您需要启动一个音乐播放器并将歌曲名作为参数传递。您可以尝试启动资源管理器并将歌曲名作为参数传递。我认为资源管理器会自动启动与扩展关联的程序(如果存在这样的关联)。

2a)这不是一个真正的问题。SO 旨在帮助解决有关编程的特定问题。您应该首先尝试弄清楚您想要做什么,然后尝试实施它并提出有关它的具体问题。

2b) 见 1b)

于 2013-10-01T03:22:30.717 回答