环境:Visual Studio 2010 C#
1. 新建项目-->Windows窗体应用程序。输入解决方案名,假定为TTS。
2. 在界面设计里拉一个textBox和一个Button。textBox1用来装文本信息,点击button1触发获取天气预报事件并朗读。
3. 在“解决方案资源管理器”中,在解决方案TTS上右键-->添加服务引用,弹出如下界面:
点“高级”,出现如下界面:
再点“添加Web引用”,弹出如下界面:
在地址栏上输入http://www.webxml.com.cn/WebServices/WeatherWebService.asmx
--------------------------------------分割线 start----------------------------------------------------
【题外话】
这是中国提供的天气预报的Web服务。在该站点的主页http://www.webxml.com.cn/zh_cn/web_services.aspx上,还能找到其它诸如查询手机号码归属地、航班时刻表、汇率、英汉翻译、QQ是否在线、验证码图片生成等Web服务。
另外介绍几个国外提供的Web Service站点(没试过,不知能不能用):
·专门关于地图的Web服务:
http://www.opengeospatial.org/standards/wms
·一个很丰富的Web服务站点:
http://www.programmableweb.com/apis/directory/1?sort=category
--------------------------------------分割线 end----------------------------------------------------

注意1:到现在的窗口标题已经为“添加Web引用”了。最开始是“添加服务引用”。这两种是不一样的。虽然在第一步的时候,在地址栏里输入以上地址,前往,也能查找到这个Web服务,但是添加到项目之后,后面用的时候就有问题,不能找到需要的类和方法(具体见后边代码)。也可能是我不会用“服务引用”。总之我只知道怎么用“Web引用”。
注意2:留意上图中的“Web引用名”,相当于添加的Web引用的命名空间。可以自己改。
点“添加引用”后,这个天气预报的Web Service就添加到我们的项目里了,可在“解决方案资源管理器”里看到,如图:
4. 接下来就是怎么使用weather web service了。
为button1添加响应函数button1_Click。具体见代码:
 private void button1_Click(object sender, EventArgs e){           // get weatherstring city = "武汉";TTS.cn.com.webxml.www.WeatherWebService wws = new cn.com.webxml.www.WeatherWebService();string[] wwsArray = wws.getWeatherbyCityName(city);this.textBox1.Text = wwsArray[0] + " " + wwsArray[1] + " " + wwsArray[5] + " " + wwsArray[6] + "。" + Environment.NewLine+ "\r\n" + wwsArray[10]  + "。"+ Environment.NewLine + wwsArray[11];                      }

从Web Service获取到的信息放到字符串数组wwsArray[]里,我选择了一些字符串放到textBox1里,wwsArray[0]表示“湖北”,wwsArray[1]表示“武汉”。你也可以把整个字符串数组放进textBox1,不过注意有些信息是城市的图片名,好像wwsArray[2]就是。
5. 添加朗读天气预报的功能。
首先在C盘下查找sapi.dll,我的如下图,在两个目录下都有这个dll:
记住这个文件的目录,随便用那个都行,两个是一样的。
然后在Visual Studio 2010中,在“解决方案资源管理器”中项目名TTS上右键-->添加引用,弹出如下图:
在浏览选项卡中选中我们之前在C盘里找到的sapi.dll,点确定。就添加进去了。可在项目中看到,如下图:
这货叫“SpeechLib”。
6. 在代码中使用SpeechLib库。
最终的完整代码如下:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using SpeechLib;namespace TTS
{public partial class Form1 : Form{public Form1(){InitializeComponent();}        private void button1_Click(object sender, EventArgs e){           // speak weathertry{SpeechVoiceSpeakFlags spFlags = SpeechVoiceSpeakFlags.SVSFlagsAsync;SpVoice voice = new SpVoice();if (this.textBox1.Text.Trim() == string.Empty){// get weatherstring city = "武汉";TTS.cn.com.webxml.www.WeatherWebService wws = new cn.com.webxml.www.WeatherWebService();string[] wwsArray = wws.getWeatherbyCityName(city);                    this.textBox1.Text = wwsArray[0] + " " + wwsArray[1] + " " + wwsArray[5] + " " + wwsArray[6] + "。" + Environment.NewLine+ "\r\n" + wwsArray[10]  + "。"+ Environment.NewLine + wwsArray[11];                  voice.Speak(this.textBox1.Text, spFlags);}else{voice.Speak(this.textBox1.Text, spFlags);}}catch (Exception err){MessageBox.Show(err.Message);}}        }
}

代运行效果截图:

出现文本信息的同时能够听见一个女声在朗读,断句组词什么的还算智能。

转载于:https://www.cnblogs.com/duanguyuan/archive/2013/06/09/3130142.html

通过Web Service获取天气预报并朗读相关推荐

  1. 安卓Web Service实现天气预报功能

    Web Service是实现异构程序之间方法调用的一种机制.通过一种XML格式的特殊文件来描述方法.参数.调用和返回值,这种格式的XML文件称为WSDL(Web Service Description ...

  2. 调用Web Service实现天气预报

    随时随地技术实战干货,获取项目源码.学习资料,请关注源代码社区公众号(ydmsq666) 一.概念:Web Service用于消除不同平台.不同语言之间的实现差异,将现有的应用程序发布成开放式服务,从 ...

  3. Android开发之使用Web Service进行网络编程

    使用Web Service进行网络编程 Android应用通常都是运行在手机平台上,手机系统的硬件资源是有限的,不管是存储能力还是计算能力都有限,在Android系统上开发.运行一些单用户.小型应用是 ...

  4. 护士站之web service

    护士站的客户端采用windows moblie,后台数据通过web service提供,在这次护士站的开发中,我负责的工作就是web service的开发. 首先介绍下什么叫web service,简 ...

  5. 常用的 Web Service 服务汇总(天气预报,列车时刻表)

    现成的Web Service中有很多很好用的,比如天气预报,IP地址搜索,火车时刻表等等.本文汇总的一些常用Web Service,希望对大家有所帮助. 下面总结了一些常用的Web Service,是 ...

  6. 用JQuery中的Ajax方法获取web service等后台程序中的方法

    用JQuery中的Ajax方法获取web service等后台程序中的方法 1.准备需要被前台html页面调用的web Service,这里我们就用ws来代替了,代码如下: using System; ...

  7. php service 函数,PHP 获取 web service 的相关函数及字段

    //系统函数 不用引入文件 $client = new SoapClient('http://100.100.100.18/serrvice?wsdl'); //打印 web service 的相关可 ...

  8. html调用天气预报wsdl服务,调用天气预报Web Service

    中国国家气象局天气预报接口总共提供了三个: http://www.weather.com.cn/data/sk/101010100.html http://www.weather.com.cn 天气预 ...

  9. 常用 Web Service 服务汇总(天气预报,列车时刻表)

    天气预报Web Service,数据来源于中国气象局 Endpoint Disco WSDL IP地址来源搜索Web Service(是目前最完整的IP地址数据) Endpoint Disco WSD ...

最新文章

  1. redis中文乱码问题
  2. R语言将多张可视化结果图像保存到PDF中实战:多图保存到同一PDF页、将多个绘图保存到PDF格式的不同页面
  3. 怎样开启mysql慢检查_如何开启mysql的慢查询
  4. 银行系统开发必读的三本书!银行IT开发
  5. 范例ppt_消防安全知识主题班会PPT,全内容高质量课件,完整框架精美套用
  6. vba 日期加一年_VBA究竟值不值得审计学?
  7. 1小时内注册公司 政务中心104个窗口同厅办公
  8. jsoup: Java HTML Parser
  9. 领域驱动设计DDD之读书笔记
  10. page compaction原理
  11. 设计一个简单的家乡网站
  12. 万能地图下载器下载谷歌卫星地图在ArcGIS中套合
  13. 中国锂电池设备行业投资价值评估及竞争策略建议报告2021-2027年
  14. 考研英语 长难句训练day12
  15. 德莱联盟(判断两个线段是否相交)
  16. 作为一本书,“卷”赢竞争对手的最佳姿势是?
  17. 常用工具类 (三) : Hutool 常用工具类整理 (全)
  18. Wordpress 网站运维 | HTTPS安全证书绑定
  19. 放弃高薪回家种韭菜,他赚了30万元
  20. 如何正确删除网易云音乐的粉丝

热门文章

  1. Caffe上用SSD训练和测试自己的数据
  2. (一)MVC5干货篇,目录和路由
  3. WordPress ProPlayer插件‘id’参数SQL注入漏洞
  4. Android数据存储之SQLite的操作
  5. 非洲的风能和太阳能真是企业家无与伦比的商机?
  6. 《Adobe Flash Professional CC经典教程》——1.13 查找关于使用Flash的资源
  7. 基于Xcode安装CocoaPods报错
  8. netapp更换硬盘
  9. AIX存储管理(二)物理卷管理
  10. 关于iptables