录像实现原理特别简单,先在配置文件中声明一下权限,这个就不说了,然后直接使用Intent跳转就行。

Intent intent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 0);startActivityForResult(intent, 10);

下面是录音的代码,直接上全部代码。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:id="@+id/activity_voice"android:layout_width="match_parent"android:layout_height="match_parent"android:background="@color/voice"tools:context="bhne.com.wlprojectapplication.ui.VoiceActivity"><LinearLayoutandroid:id="@+id/linearLayout1"android:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="vertical"><ImageViewandroid:id="@+id/imageview_voice"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginTop="80dp"android:src="@drawable/timg_voice" /><RelativeLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:layout_alignParentBottom="true"android:layout_alignParentStart="true"android:layout_marginTop="20dp"><Buttonandroid:id="@+id/start"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginLeft="50dp"android:background="@drawable/shape"android:text="开始录音" /><Buttonandroid:id="@+id/stop"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignParentEnd="true"android:layout_alignParentTop="true"android:layout_marginEnd="48dp"android:layout_marginRight="200dp"android:background="@drawable/shape"android:text="停止录音" /></RelativeLayout></LinearLayout></RelativeLayout>

上面是布局文件,下面是代码。

package bhne.com.wlprojectapplication.ui;import android.app.Activity;
import android.content.Intent;
import android.media.MediaRecorder;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;import java.io.File;import bhne.com.wlprojectapplication.Common.DBUtil;
import bhne.com.wlprojectapplication.Common.GreenDaoContext;
import bhne.com.wlprojectapplication.Common.RecordPlayer;
import bhne.com.wlprojectapplication.R;
import bhne.com.wlprojectapplication.db.equDao;
import bhne.com.wlprojectapplication.db.pictureDao;
import bhne.com.wlprojectapplication.db.projectDao;
import bhne.com.wlprojectapplication.entity.equ;
import bhne.com.wlprojectapplication.entity.picture;
import bhne.com.wlprojectapplication.entity.project;public class VoiceActivity extends Activity implements View.OnClickListener {private Button start,stop,play,pause_play,stop_play;private MediaRecorder mediaRecorder;private File recordFile;private RecordPlayer player;private projectDao ProjectDao;private equDao EquDao;private String Equ_id;private String projectpath;private String pathImage;private pictureDao PictureDao;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_voice);Bundle bundle = this.getIntent().getExtras();/*获取Bundle中的数据,注意类型和key*/Equ_id = bundle.getString("equid");EquDao= DBUtil.getDaoSession(VoiceActivity.this).getEquDao();ProjectDao= DBUtil.getDaoSession(VoiceActivity.this).getProjectDao();PictureDao= DBUtil.getDaoSession(VoiceActivity.this).getPictureDao();equ t1=EquDao.queryBuilder().where(equDao.Properties.Id.eq(Equ_id)).list().get(0);project t2=ProjectDao.queryBuilder().where(projectDao.Properties.Id.eq(t1.gcid)).list().get(0);projectpath=t2.getName();GreenDaoContext ct=new GreenDaoContext();String t=java.util.UUID.randomUUID().toString();recordFile = new File(ct.getSDPath()+"/bhne/export/"+projectpath+"/", t+".wav");pathImage=ct.getSDPath()+"/bhne/export/"+projectpath+"/"+t+".wav";init();Listener();}private void init(){start=(Button) findViewById(R.id.start);stop=(Button) findViewById(R.id.stop);
//        play=(Button) findViewById(R.id.paly);
//        pause_play=(Button) findViewById(R.id.pause_paly);
//        stop_play=(Button) findViewById(R.id.stop_paly);}private void Listener(){start.setOnClickListener(this);stop.setOnClickListener(this);
//        play.setOnClickListener(this);
//        pause_play.setOnClickListener(this);
//        stop_play.setOnClickListener(this);}@Overridepublic void onClick(View v) {player=new RecordPlayer(VoiceActivity.this);int Id=v.getId();switch (Id) {case R.id.start:startRecording();break;case R.id.stop:stopRecording();break;
//            case R.id.paly:
//                playRecording();
//                break;
//            case R.id.pause_paly:
//                pauseplayer();
//                break;
//            case R.id.stop_paly:
//                stopplayer();
//                break;}}private void startRecording() {mediaRecorder = new MediaRecorder();// 判断,若当前文件已存在,则删除if (recordFile.exists()) {recordFile.delete();}mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.DEFAULT);mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);mediaRecorder.setOutputFile(recordFile.getAbsolutePath());try {Toast.makeText(this,"正在录音",Toast.LENGTH_SHORT).show();// 准备好开始录音mediaRecorder.prepare();mediaRecorder.start();start.setEnabled(false);stop.setEnabled(true);} catch (Exception e) {e.printStackTrace();}}private void stopRecording() {stop.setEnabled(false);start.setEnabled(true);picture info=new picture();//  info.setId(java.util.UUID.randomUUID().toString());info.setEquid(Long.valueOf(Equ_id));info.setPicturePath(pathImage);
//                    info.setID(java.util.UUID.randomUUID().toString());//加载默认的项目final long len = PictureDao.insert(info);if(len>0){Toast.makeText(getApplicationContext(), "新增语音成功", Toast.LENGTH_SHORT).show();Toast.makeText(this,recordFile.toString(),Toast.LENGTH_LONG).show();}else{Toast.makeText(getApplicationContext(), "新增语音失败", Toast.LENGTH_SHORT).show();}if (recordFile != null) {mediaRecorder.stop();mediaRecorder.release();}Intent intent=new Intent(VoiceActivity.this,PictureActivity.class);setResult(70,intent);finish();}
}

就這樣,就这样。

Android实现调用系统相机录像及实现录音相关推荐

  1. 安卓调用系统相机录像并上传到后端服务器

    安卓调用系统相机录像并上传到后端服务器 写在前面 一.录像上传的思路 二.添加相关权限 三.按钮设置监听,调用相机录像并回调 1.按钮设置监听: 2.调用代码 3.回调代码(划重点奥) 最后的最后: ...

  2. Android开发 调用系统相机相册图片功能,解决小米手机拍照或者图片横竖相反问题,及小米手机相册图片路径问题

    Android开发 调用系统相机相册图片功能,解决小米手机拍照或者图片横竖相反问题,及小米手机相册图片路径问题 1.调用相机,兼容7.0 AndroidManifest配置 <providera ...

  3. Android手机调用系统相机拍照、裁剪以及获取Url上传图片

    前言 最近一个人在公司搞独立开发,遇到问题只能自己解决,虽然过程比较坎坷,但是收获还是颇多的,一个人也是要坚强滴,最近弄用户的头像遇到了一些小问题,虽然上一款应用有头像上传,但是发现了其中的一些小问题 ...

  4. 调用系统相机录像,压缩保存到相册(附仿微信视频录制demo)

    使用系统相机录像,使用的AVFoundation框架.首先了解一下框架的使用. 一.录制的相关类有: 1.AVCaptureSession 媒体(音.视频)捕获会话,负责把捕获的音视频数据输出到输出设 ...

  5. android代码调用相机,Android如何调用系统相机拍照

    本文实例为大家分享了Android调用系统相机拍照的具体代码,供大家参考,具体内容如下 /** * 调用系统相机 */ private void takePhoto() { Uri uri = nul ...

  6. android 自己调用系统相机保存的照片存到自定义文件夹里面用电脑看该照片显示0KB或者是无法查看?或者说用手机助手导出照片导出失败?

    哈哈,标题有点长,之所以这样是为了能让遇到同样问题的人方便搜索到,我自己就遇到这样的问题一直搜索不到. 我先讲一下自己遇到的问题:因为我的app有需求要拍照并且保存起来,然后我为了方便用户去相册统一查 ...

  7. android系统相机自动录像,android 调用系统相机录像并保存

    1.在AndroidManifest.xml中添加如下代码 tools:ignore="ProtectedPermissions" /> android:authoritie ...

  8. android调用系统相机图片不旋转,Android 处理调用系统相机生成的被旋转图片

    主要通过获取EXIF信息进行设置: public static int readPictureDegree(String path) { int degree  = 0; try { ExifInte ...

  9. android调用相机与相册的方法,手把手教你:android调用系统相机、相册功能,适配6.0权限获取以及7.0之后获取URI(兼容多版本)...

    Android中调用系统相机来拍摄照片的代码,以下:html 一.首先设置Uri获取判断以及相机请求Codejava public final int TYPE_TAKE_PHOTO = 1;//Ur ...

最新文章

  1. 密码学基础知识(五)序列密码
  2. JavaFX学习之道:JavaFX之TableView
  3. MyEclipse10安装SVN插件的几种方法
  4. JUnit3 一次运行多个测试类和进行多次重复测试:使用测试套件和RepeatedTest
  5. java开发实战经典
  6. Java 提示“找不到或无法加载主类” 解决方法
  7. Flex控制对主机网页中脚本的访问
  8. tt c mysql t4 bll_通过T4模板实现代码自动生成
  9. Mac上好用的web前端开发工具
  10. iOS PNG和JPG的区别
  11. iphone 装 android系统,iPhone上安装Android系统详细步骤。
  12. 28.【分解质因数】
  13. 怎样运用云服务器搭建传奇世界联网手游教程,linux系统部署游戏详细教程
  14. 【点云3D目标检测】OpenPCDet下Spconv1.x与Spconv2.x的安装问题及解决方法
  15. linux系统查询服务器型号,Linux系统查看服务器型号
  16. latex大斜杠, 除号
  17. 软件测试公司折扣政策,@软件企业看,这些税收优惠政策请收下
  18. UltraEdit 使用技巧笔记(转)
  19. 基于HTML5的捕鱼达人游戏网页版
  20. 基于python实现网页版微信API,包含终端版微信及微信机器人

热门文章

  1. 不拘一格-网飞的自由与责任工作法
  2. Node.js模块化机制原理探究
  3. 扩展板振动马达驱动移植
  4. vue使用addRoutes()方法后,this.$router.options.routes未更新
  5. 不想花钱学Python,好资源该怎么找?这里有你看不完的东西
  6. 运用正则爬取猫眼电影流程
  7. 一种快速毛玻璃虚化效果实现
  8. 量子前沿英雄谱|Marin Soljačić(马林·索尔季奇)
  9. linux中的ubiq命令用途,学习Linux命令(一)
  10. win7系统下安装win10实现双系统安装教程