Android--多媒体操作
---恢复内容开始---
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--多媒体操作的更多相关文章
- Android权限操作之uses-permission详解
本文实例讲述了Android权限操作之uses-permission.分享给大家供大家参考,具体如下: 我们在安装Android软件的时候,系统会提示该软件所需要的权限,相对于其他系统,android ...
- Android多媒体访问
Android的多媒体文件主要存储在/data/data/com.android.providers.media/databases目录下,该目录下有两个db文件,一个是内部存储数据库文件(inter ...
- Android多媒体框架图
Android多媒体整体架构图 MediaPlayer框架图 Camera框架图 SoundRecorder框架图 VideoCamera框架图 OpenCore与Skia ALSA Audio框架图 ...
- [Android Pro] 完美Android Cursor使用例子(Android数据库操作)
reference to : http://www.ablanxue.com/prone_10575_1.html 完美 Android Cursor使用例子(Android数据库操作),Androi ...
- Android 多媒体视频播放一( 多媒体理解与经验分享)
前言 说到android的多媒体,一把辛酸一把泪,当初听说会多媒体的比较牛掰,公司也有需求,于是乎我也积极的加入研究android多媒体的行列,记得以前刚接触的时候,最开始还是比较头大的,主要是但是很 ...
- Android 常用操作
0.android studios使用介绍 使用介绍 android studio 常用小技巧 网址 1.怎么样添加第三方库 方法一: 第一步:将第三方库以module的形式导入 第二步:选中要导入第 ...
- 基于 VLC 的 Android 多媒体解决方案
前段时间项目中需要在 Android 中播放视频.流媒体.查看监控,就研究了一下 Android 多媒体解决方案. 查找了一下,大致有如下几种: Android MediaPlayer FFmpeg ...
- Android – 学习操作NFC – 2
在<Android – 学习操作NFC – 1>说明了Android在处理NFC tag的机制.tag dispatch system的运作流程,以及三种ACTION_NDEF_DISCO ...
- android 文件操作类简易总结
android 文件操作类(参考链接) http://www.cnblogs.com/menlsh/archive/2013/04/02/2997084.html package com.androi ...
- 为什么说android UI操作不是线程安全的
转载于:http://blog.csdn.net/lvxiangan/article/details/17218409#t2 UI线程及Android的单线程模型原则 使用Worker线程 Commu ...
随机推荐
- 经典的找不到符号(symbol)错误 #iOS开发
使用BmobSDK的过程中,编译时出现了以下错误信息,意思是 -[BmobSRWebSocket _innerPumpScanner] 这个方法引用了 "_utf8_nextCharSafe ...
- github 添加项目
下载git安装 ->https://git-scm.com/downloads 新建git目录 在目录下右键选择Git Bash Here 执行 git init 拷贝项目到git目录下 在gi ...
- [goa]golang微服务框架学习(三)-- 使用swagger-ui展示API
既然goa框架自动生成啦swagger-json文件,那么如何用swagger-ui展示出来呢? 这里分三步: 1.下载swagger-ui的web代码 2.添加swagger.json 和 swag ...
- 【私人定制jackson】定制jackson的自定义序列化(null值的处理)
最近用springMVC做服务端的http+json的接口,出现一个不是特别容易解决的问题: 在对List类型的值进行处理时,有一部分服务是有做一些逻辑判断的,在逻辑判断不通过的时候会返回一个null ...
- sublime插件 TortioseSVN
TortioseSVN 可以安装在sublime中,实现svn文件的增加.删除.更新.提交等功能(TortioseSVN用在window系统中,linux安装svn) 安装: 首先在sublime中搜 ...
- 一次诡异的TOMCAT启动故障的解决
该系统采用TOMCAT+SSH+Linux+Proxool连接池, 以前数据库是本地连接. 后换数据库远端连接,最近老是启动不了. 1.怀疑是proxool连接池没有自动断开后恢复.尝试解决,不是这个 ...
- 当我我们用new操作符创建对象的时候,都发生了些什么?
//下面这段代码是javascript设计模式与开发实践上的一段代码 function Person( name ){ this.name = name; }; ...
- BLE资料应用笔记 -- 持续更新
BLE资料应用笔记 -- 持续更新 BLE 应用笔记 小书匠 简而言之,蓝牙无处不在,易于使用,低耗能和低使用成本.'让我们'更深入地探索这些方面吧. 蓝牙无处不在-,您可以在几乎每一台电话.笔记本电 ...
- php生成器的使用
按照php的文档说明 一个生成器函数看起来像一个普通的函数,不同的是普通函数返回一个值,而一个生成器可以yield生成许多它所需要的值. 当一个生成器被调用的时候,它返回一个可以被遍历的对象.当你遍历 ...
- sql server操作类(本人自己写的)
package com.mytest; import java.sql.Connection; import java.sql.DriverManager; import java.sql.Prepa ...