---恢复内容开始---

1、拍照,这里直接上代码,看注释就好

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main); takePhoto = (Button) findViewById(R.id.take_photo);
photo = (ImageView) findViewById(R.id.photo); takePhoto.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
File outputImage = new File(Environment.getExternalStorageDirectory(), "tempImage.jpg");//这里新建一个文件类,该文件用于保存拍照所得的图片,getExternalStorageDirectory(),表示存在手机SD卡根目录
try{
if(outputImage.exists()){
outputImage.delete();
}
outputImage.createNewFile();
}catch (IOException e){
e.printStackTrace();
}
imageUri = Uri.fromFile(outputImage);//将文件转换Uri对象
Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");//启动照相机程序的action
intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);//指定拍照后图片输出地址为前面创建的Uri对象
startActivityForResult(intent, TAKE_PHOTO);//启动照相机
}
});
}

  --文件存储需要由权限:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

2、相册选择照片并显示:

choosePhoto = (Button)findViewById(R.id.choose_photo);
choosePhoto.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(Intent.ACTION_PICK,android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);//打开相册并,返回选中照片的Uri
startActivityForResult(intent, CHOOSE_PHOTO);
}
});
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch(requestCode){
case CHOOSE_PHOTO:
if(resultCode == RESULT_OK){
try{
Uri uri = data.getData();//获取选中图片的Uri
Bitmap bitmap = BitmapFactory.decodeStream(getContentResolver().openInputStream(uri));//根据Uri加载图片为Bitmap
photo.setImageBitmap(bitmap);
}catch (FileNotFoundException e){
e.printStackTrace();
}
}
break;
}
}

--上述操作中,由于选中的图片可能会很大,通常需要压缩后再进行显示;

3、音频播放

  1)Android 中通过使用 MediaPlayer 类来实现音频播放,它的常用控制方法有:

    --setDataSource():设置要播放的音频文件的位置;

    --prepare():在开始播放之前调用这个方法完成准备工作;

    --start():开始或继续播放音频;

    --pause():暂停播放音频;

    --reset():将MediaPlayer 对象重置到刚刚创建的状态;

    --seekTo():从指定的位置开始播放音频;

    --stop():停止播放音频。调用这个方法后的MediaPlayer 对象无法再播放音频

    --release():释放掉与MediaPlayer 对象相关的资源;

    --isPlaying():判断当前MediaPlayer 是否正在播放音频;

    --getDuration():获取载入的音频文件的时长;

4、播放视频:

  1)Android 中通过 VideoView 类来实现视频的操作,它的常用方法有:

    --setVideoPath():设置要播放的视频文件的位置;

    --start():开始或继续播放视频;

    --pause():暂停播放视频;

    --resume():将视频重头开始播放;

    --seekTo():从指定的位置开始播放视频;

    --isPlaying():判断当前是否正在播放视频;

    --getDuration():获取载入的视频文件的时长;

    --suspend():释放视频资源;

Android--多媒体操作的更多相关文章

  1. Android权限操作之uses-permission详解

    本文实例讲述了Android权限操作之uses-permission.分享给大家供大家参考,具体如下: 我们在安装Android软件的时候,系统会提示该软件所需要的权限,相对于其他系统,android ...

  2. Android多媒体访问

    Android的多媒体文件主要存储在/data/data/com.android.providers.media/databases目录下,该目录下有两个db文件,一个是内部存储数据库文件(inter ...

  3. Android多媒体框架图

    Android多媒体整体架构图 MediaPlayer框架图 Camera框架图 SoundRecorder框架图 VideoCamera框架图 OpenCore与Skia ALSA Audio框架图 ...

  4. [Android Pro] 完美Android Cursor使用例子(Android数据库操作)

    reference to : http://www.ablanxue.com/prone_10575_1.html 完美 Android Cursor使用例子(Android数据库操作),Androi ...

  5. Android 多媒体视频播放一( 多媒体理解与经验分享)

    前言 说到android的多媒体,一把辛酸一把泪,当初听说会多媒体的比较牛掰,公司也有需求,于是乎我也积极的加入研究android多媒体的行列,记得以前刚接触的时候,最开始还是比较头大的,主要是但是很 ...

  6. Android 常用操作

    0.android studios使用介绍 使用介绍 android studio 常用小技巧 网址 1.怎么样添加第三方库 方法一: 第一步:将第三方库以module的形式导入 第二步:选中要导入第 ...

  7. 基于 VLC 的 Android 多媒体解决方案

    前段时间项目中需要在 Android 中播放视频.流媒体.查看监控,就研究了一下 Android 多媒体解决方案. 查找了一下,大致有如下几种: Android MediaPlayer FFmpeg ...

  8. Android – 学习操作NFC – 2

    在<Android – 学习操作NFC – 1>说明了Android在处理NFC tag的机制.tag dispatch system的运作流程,以及三种ACTION_NDEF_DISCO ...

  9. android 文件操作类简易总结

    android 文件操作类(参考链接) http://www.cnblogs.com/menlsh/archive/2013/04/02/2997084.html package com.androi ...

  10. 为什么说android UI操作不是线程安全的

    转载于:http://blog.csdn.net/lvxiangan/article/details/17218409#t2 UI线程及Android的单线程模型原则 使用Worker线程 Commu ...

随机推荐

  1. Tomcat中间件URL中文字符传递问题

    1. 问题描述: tomcat中如果URL中需要传递中文参数,需要配置tomcat的service.xml中文传递的编码方式,否则中文传递将出现乱码,导致程序异常. 2. 解决方式: 修改tomcat ...

  2. HTML页面弹出自定义对话框带遮蔽罩(使用JavaScript)

    转载:http://blog.sina.com.cn/s/blog_610f47c50100ohe4.html 原理其实很简单:首先绘制弹出的自定义对话框,将其使用display:none隐藏,因为设 ...

  3. String和string的区别(C#)

    从位置讲: 1.String是.NET  Framework里面的String,小写的string是C#语言中的string 2.如果把using System;删掉,没有大写的String了,Sys ...

  4. JDBC 工具类

    在Java编程过程中 我们需要连接数据库 所以数据库的连接和增删改查操作是非常基本的操作同时又非常的重要.同时在JDBC编程中 ,有很多的方法如更新个查找操作,我们可以对其进行封装,提高我们编码的效率 ...

  5. 自定义View的学习(一) 自绘制控件

    一.自绘控件 就是自己绘制的控件,通过onDraw()方法将控件绘制出来  自定义一个可点击的View  这个View可以记住用户点击的次数 public class CounterView exte ...

  6. Kinect2在线重建(Tracking and Mapping)

    前言      个人理解错误的地方还请不吝赐教,转载请标明出处,内容如有改动更新,请看原博:http://www.cnblogs.com/hitcm/      如有任何问题,feel free to ...

  7. 金蝶K/3 Cloud 界面解析过程

    服务端 目前也就是iis服务器生成Json描述返回给不同的展现端最解析. 不同的展现端,可以有Silverlight.WPF.Html5.Winform 当然还有IOS和Android端做解析展现 对 ...

  8. 我开发的SNMP编译器和浏览器

    我开发的SNMP编译器和浏览器 什么是SNMP SNMP(Simple Network Management Protocol,简单网络管理协议)的前身是简单网关监控协议(SGMP),用来对通信线路进 ...

  9. 炫酷CSS

    <!DOCTYPE html><!--To change this license header, choose License Headers in Project Propert ...

  10. HTML5之语义标签

    在HTML5标准中,新加了几个用于增添页面语义的标签,这些标签有:article.section.nav和aside等.与别的大多数标签不 同,浏览器在解释渲染这些标签的时候仅仅把它作为普通的div块 ...