环境: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. 二极管极低电流I-V特性测量
  2. 虚幻引擎UE4-命令行使用的一些技巧
  3. Python基础知识(第七天)
  4. 基于机器学习的web异常检测
  5. mybatisplus执行sql语句_一条更新的SQL语句是如何执行的?
  6. 百度地图infowindow的close事件_百度地图蒙圈:车主要加油误导母婴店 跑偏理由令人啼笑皆非...
  7. FreeRTOS学习笔记——互斥型信号量
  8. python日志保存为html文件,用 Python 抓取公号文章保存成 HTML
  9. [译]Flask教程--将表单数据发送到模板
  10. 用Vue做一个职业选择或地区选择的三级嵌套组件
  11. [转]计算机经典书籍
  12. Android Studio下拉菜单
  13. zepto 事件分析2($.on)
  14. c 语言构造函数的实验报告,c上机实验报告_相关文章专题_写写帮文库
  15. matplotlib - 自定义散点形状marker的3种方法
  16. 【Python学习】数据归一化Scaling与标准化Normalization间的区别与相关实现
  17. mysql 1067_mysql启动错误1067进程意外终止的解决方法
  18. 自由截图、提取、翻译图中文字——搜狗浏览器之截图扩展
  19. 爬取微博上某大v,明星,官微等用户的微博信息的小技巧
  20. 基于保守性和规则性的预测方法SIFT和PolyPhen

热门文章

  1. [Swift通天遁地]九、拔剑吧-(9)创建支持缩放、移动、裁切的相机视图控制器
  2. 通过反射获取类上的注解
  3. 程序员整理的各种不错的工具
  4. 如何编译Apache Hadoop2.2.0源代码
  5. iOS: 转载CoreData数据库框架
  6. 【原创】sharepoint webpart COPY部署的办法
  7. ActiveX (.ocx)的写法,及在IE里调用
  8. 战胜心理寂寞的六大秘方
  9. Flash Communication Server笔记一
  10. Error APICloud iOS null is not an object