Android应用程序设计教程 教学课件 ppt 作者 李华忠 梁永生 刘涛 第6章 Android多媒体

上传人:E**** 文档编号:89367048 上传时间:2019-05-24 格式:PPT 页数:116 大小:1.54MB
返回 下载 相关 举报
Android应用程序设计教程 教学课件 ppt 作者  李华忠 梁永生 刘涛 第6章 Android多媒体_第1页
第1页 / 共116页
Android应用程序设计教程 教学课件 ppt 作者  李华忠 梁永生 刘涛 第6章 Android多媒体_第2页
第2页 / 共116页
Android应用程序设计教程 教学课件 ppt 作者  李华忠 梁永生 刘涛 第6章 Android多媒体_第3页
第3页 / 共116页
Android应用程序设计教程 教学课件 ppt 作者  李华忠 梁永生 刘涛 第6章 Android多媒体_第4页
第4页 / 共116页
Android应用程序设计教程 教学课件 ppt 作者  李华忠 梁永生 刘涛 第6章 Android多媒体_第5页
第5页 / 共116页
点击查看更多>>
资源描述

《Android应用程序设计教程 教学课件 ppt 作者 李华忠 梁永生 刘涛 第6章 Android多媒体》由会员分享,可在线阅读,更多相关《Android应用程序设计教程 教学课件 ppt 作者 李华忠 梁永生 刘涛 第6章 Android多媒体(116页珍藏版)》请在金锄头文库上搜索。

1、李华忠 梁永生 刘涛 主编 2019年5月24日, Android应用程序设计 第6章 Android多媒体,人民邮电出版社,提纲,6.1 项目导引 6.2 项目分析 6.3 技术准备 6.3.1 知识点1:Android网络基础(标准Java、Apache、Android网络和HTTP通信接口) 6.3.2 知识点2:Service 6.3.3 知识点3:MediaPlayer 6.3.4 知识点4:视频 6.3.5 知识点5:录音,提纲,6.4 项目实施 6.5 技术拓展 6.6 本章小结 6.7 强化练习,6.1 项目导引,自从Android发布以来受到了人们的普遍青睐,最重要的原因就是

2、其开源性。我们可以在Android手机上装自己所喜欢的软件。而我们装的最多的无疑就是游戏、音乐播放、图片处理类的软件。这些都离不开Android系统的多媒体技术。本章我们就着重学习如何来将应用程序借助Android的多媒体技术做成一个“有声有色”的应用程序。,6.2 项目分析,在我们的实际开发中经常会用到多媒体的技术。如图6-1所示,在我们做的电子导游中需要语音播放我们所在景点的语音介绍。,图6-1 电子导游界面,6.2 项目分析,在项目研发过程中我们需要考虑用户的使用状态,我们的软件面向的是黄果树景区,在贵州山地占大部分可能会存在网络信号差的问题。那么就需要考虑将我们的音频放到本地,直接调用

3、。如果我们开发的是北京的电子导游,那么我们就可能需要将我们的音频放到服务器上进行边下载边播放。 在这个项目中我们还碰到了一个问题就是,既然把音频放到了客户端,那么如何控制音频文件的大小就成了控制apk大小的决定因素。这也是我们在多媒体这章需要掌握和注意的。在实际操作之前我们先来学习下多媒体技术的基本内容。,6.3 技术准备,6.3.1 知识点1:Android网络基础(标准Java、Apache、Android网络和HTTP通信接口),随着3G时代的来临,无论是上网、娱乐,还是办公、学习,智能手机将是用户的首选工具。然而Android是一个以Google为首的由30多家科技公司和手机公司组成的

4、开发手机联盟。Android受到广大手机用户的喜爱,由于丰富的应用程序作为支持,使得3G手机出了进行通话外,给我们带来了更好的3G体验。,6.3 技术准备,6.3.1 知识点1:Android网络基础(标准Java、Apache、Android网络和HTTP通信接口),Android目前有3种网络接口可以使用,分别为:.*、org.apache和.*。下面我们就简单的介绍一下这些接口的功能和作用。,标准Java接口,J.*提供与网络连接相关的类,.*的包分为两个部分:低级 API和高级API。,6.3 技术准备,6.3.1 知识点1:Android网络基础(标准Java、Apache、Andr

5、oid网络和HTTP通信接口),(1)低级API主要用于处理以下抽象: 地址,也就是网络标识符,如 IP 地址。 套接字,也就是基本双向数据通信机制。 接口,用于描述网络接口。 (2)高级API主要用于处理以下抽象: URI,表示统一资源标识符。 URL,表示统一资源定位符。 连接,表示到 URL 所指向资源的连接。 地址,在整个 API 中,地址或者用作主机标识符或者用作套接字端点标识符。,6.3 技术准备,6.3.1 知识点1:Android网络基础(标准Java、Apache、Android网络和HTTP通信接口),代码清单6-1 使用创建连接 try URL url=new URL(

6、“http:/“);/定义URL标识符 HttpURLConnection http=(HttpURLConnection) url.openConnection();/打开连接 int nRC=http.getResponseCode();/得到连接状态 if(nRC=HttpURLConnection.HTTP_OK) /取得数据 InputStream is=http.getInputStream(); /处理数据 catch(Exception e) /捕获异常 ,下面我们通过一段程序代码来看下.*在程序中的使用,如代码清单6-1所示。,6.3 技术准备,6.3.1 知识点1:Andr

7、oid网络基础(标准Java、Apache、Android网络和HTTP通信接口),2Apache接口,Http协议是目前在Internet上使用最多、最重要的通信协议,越来越多的Java应用程序需要通过Http协议来访问网络资源。虽然前面我们讲到包中已经提供了访问Http协议的基本功能,但是这对于大部分应用程序是不够的。Android系统引入了Apache HttpClient以及对其的封装和扩展,如设置缺省的Http超时和缓存大小等。Android使用的是目前最新的HttpClient 4.0。通过Apache创建HttpClient以及Get/Post、HttpRequest等对象,设置

8、连接参数,执行Http操作,处理服务器返回结果等功能。,6.3 技术准备,6.3.1 知识点1:Android网络基础(标准Java、Apache、Android网络和HTTP通信接口),下面我们同样通过代码段来了解Apache接口的应用。,代码清单6-2 使用.http.*连接网络 try HttpClient hc=new DefaultHttpClient();/创建HttpClient使用默认属性 HttpGet get=new HttpGet(“http:/“);/创建HttpGet实例 HttpResponse rp=hc.execute(get);/连接 if(rp.getSta

9、tusLine().getStatusCode()=HttpStatus.SC_OK) InputStream is=rp.getEntity().getContent(); /处理数据 catch(IOException )捕获异常 ,6.3 技术准备,6.3.1 知识点1:Android网络基础(标准Java、Apache、Android网络和HTTP通信接口),3Android网络接口,A.*包实际上是通过对Apache的HttpClient进行封装,实现的一个Http变成接口,同时也提供了Http请求队列管理以及Http连接池管理,以提高并发情况下的处理效率,除此之外还有网络状态监视等

10、接口、网络访问的socket,常用的Uri类以及有关WiFi相关的类等。,6.3 技术准备,6.3.1 知识点1:Android网络基础(标准Java、Apache、Android网络和HTTP通信接口),代码清单6-3就是最简单的Socket连接代码,如下所示。,代码清单6-3 Android中的Socket链接 try InetAddress inetAddress=InetAddress.getByName(“192.168.1.25“); Socket client=new Socket(inetAddress,61203,true); InputStream in=client.ge

11、tInputStream(); OutputStream out=client.getOutputStream(); /处理数据 out.close(); in.close(); client.close(); catch(UnknownHostException e) catch(IOException e) ,6.3 技术准备,6.3.1 知识点1:Android网络基础(标准Java、Apache、Android网络和HTTP通信接口),4HTTP通信,HTTP(Hyper Text Transfer Protocol,超文本传输协议)用于传送WWW方式的数据,采用了请求/响应模型。客户

12、端向服务器发送一个请求,请求头包含了请求的方法、URI、协议版本以及包含请求修饰符、客户信息和内容的类似于MIME的消息结构。服务器以一个状态行作为响应,响应的内容包括消息协议的版本、成功或者错误编码,还包括服务器信息、实体元信息以及可能的实体内容。 Google以网络搜索引擎著称,自然而然也会使Android SDK拥有强大的HTTP访问能力。在Android SDK中,Google集成了Apache的HttpClient模块。要注意的是,这里的Apache HttpClient模块是HttpClient4.0(org.apache.http.*),而不是Jakarta Commons Ht

13、tpClient 3.x(mons.httpclient.*)。,6.3 技术准备,6.3.1 知识点1:Android网络基础(标准Java、Apache、Android网络和HTTP通信接口),(1)Http Get与Http Post,http通信中使用最多的就是Get和Post。Get请求方式中,参数直接放在URL字串后面,传递给服务器。 格式如下: HttpGet method = new HttpGet(“http:/?admin=Get”); HttpResponse response = client.execute(method); 而Post请求方式中,参数必须采用Name

14、ValuePair数组的传送方式。 格式如下: HttpPost method = new HttpPost(“http:/”); List params = new ArrayList(); params.add(new BasicNameValuePair(“admin”, “Get”); method.setEntity(new UrlEncodedFormEntity(params); HttpResponse response = client.execute(method);,6.3 技术准备,6.3.1 知识点1:Android网络基础(标准Java、Apache、Android

15、网络和HTTP通信接口),在这两种通信方式中,一般情况下,两种方式实现的效果一样。但也有特殊情况,可能服务器只支持GET的请求方式,而不支持POST的请求方式,所以导致POST请求方式获取不到需要的数据;也可能服务器只支持POST的请求方式,不支持GET的请求方式。于是,我们需要查看服务器返回的状态码,如果是“200”则证明连接成功,否则连接失败。状态码的取得方式可以通过抓包观察,也可以直接用代码获取。,6.3 技术准备,6.3.1 知识点1:Android网络基础(标准Java、Apache、Android网络和HTTP通信接口),用代码获得服务器返回的状态码具体参照为: HttpResponse httpResponse = new DefaultHttpClient().execute(method); If(httpResponse.getStatusLine().getStatusCode() = 200) / TODO: 从URL获取数据 else / TODO: 显示连接异常信息 ,6.3 技术准备,6.3.1 知识点1:Android网络基础(标准Java、Apache、Android网络和HTTP通信接口),在这里我们需要注意的是,由于Android的很多操作都涉及权限的问题,如打电话和发短信等,都需要权限。而Andro

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号