android第二十步摄像

MediaRecorder摄像类

recorder = new MediaRecorder();
recorder.setAudioSource(MediaRecorder.AudioSource.MIC);音频取自麦克
recorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);视频取自摄像机
recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);//格式3pg
recorder.setVideoSize(320, 240);视频尺寸
recorder.setVideoFrameRate(5);视频帧数
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);音频编码
recorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264);视频编码
recorder.setOutputFile(file.getAbsolutePath());视频保存位置
recorder.setPreviewDisplay(view.getHolder().getSurface());显示在SurfaceView上
recorder.prepare();准备录制机开始捕获编码数据
recorder.start();开始

犯错记录:

错误

    super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);requestWindowFeature(Window.FEATURE_NO_TITLE);getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);

正确

   super.onCreate(savedInstanceState);requestWindowFeature(Window.FEATURE_NO_TITLE);getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);setContentView(R.layout.activity_main);

布局

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".MainActivity" ><SurfaceViewandroid:layout_width="match_parent"android:layout_height="match_parent"android:id="@+id/surfaceView"/><RelativeLayout android:id="@+id/layout"android:visibility="gone"android:layout_width="match_parent"android:layout_height="match_parent"><Button android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="@string/recordbutton"android:id="@+id/recordbutton"android:layout_alignParentBottom="true"android:layout_alignParentRight="true"android:layout_marginRight="5dp"android:onClick="record"/><Button android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="@string/stopbutton"android:id="@+id/stopbutton"android:layout_marginRight="30dp"android:layout_toLeftOf="@id/recordbutton"android:layout_alignTop="@id/recordbutton"android:onClick="record"android:enabled="false"/></RelativeLayout></FrameLayout>

程序

public class MainActivity extends Activity {private SurfaceView view;private RelativeLayout layout;private Button recordbutton;private Button stopbutton;private MediaRecorder recorder;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);requestWindowFeature(Window.FEATURE_NO_TITLE);getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);setContentView(R.layout.activity_main);try{view = (SurfaceView)this.findViewById(R.id.surfaceView);view.getHolder().setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);view.getHolder().setFixedSize(176, 144);view.getHolder().setKeepScreenOn(true);layout = (RelativeLayout)this.findViewById(R.id.layout);recordbutton = (Button)this.findViewById(R.id.recordbutton);stopbutton = (Button)this.findViewById(R.id.stopbutton);}catch(Exception e){e.printStackTrace();}}public void record(View v){switch(v.getId()){case R.id.recordbutton:try{File file = new File(Environment.getExternalStorageDirectory(),System.currentTimeMillis()+".3pg");recorder = new MediaRecorder();recorder.setAudioSource(MediaRecorder.AudioSource.MIC);recorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);recorder.setVideoSize(320, 240);recorder.setVideoFrameRate(5);recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);recorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264);recorder.setOutputFile(file.getAbsolutePath());recorder.setPreviewDisplay(view.getHolder().getSurface());recorder.prepare();recorder.start();recordbutton.setEnabled(false);stopbutton.setEnabled(true);}catch(Exception e){e.printStackTrace();}break;case R.id.stopbutton:if(recorder!=null){recorder.stop();recorder.release();recorder=null;}recordbutton.setEnabled(true);stopbutton.setEnabled(false);break;}}@Overridepublic boolean onTouchEvent(MotionEvent event) {if(event.getAction() == MotionEvent.ACTION_DOWN){layout.setVisibility(ViewGroup.VISIBLE);}return super.onTouchEvent(event);}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);return true;}@Overrideprotected void onDestroy() {// TODO Auto-generated method stubsuper.onDestroy();}}

权限

   <uses-permission android:name="android.permission.RECORD_AUDIO"/><uses-permission android:name="android.permission.CAMERA"/><!-- 在SDCard中创建与删除文件权限 --><uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/><!-- SDCard写入数据权限 --><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

 

转载于:https://www.cnblogs.com/zyldream/p/3668156.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/473430.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

正则表达式之 贪婪与非贪婪模式详解

1 概述 贪婪与非贪婪模式影响的是被量词修饰的子表达式的匹配行为&#xff0c;贪婪模式在整个表达式匹配成功的前提下&#xff0c;尽可能多的匹配&#xff0c;而非贪婪模式在整个表达式匹配成功的前提下&#xff0c;尽可能少的匹配。非贪婪模式只被部分NFA引擎所支持。 属于贪婪…

LeetCode 1680. 连接连续二进制数字(位运算)

文章目录1. 题目2. 解题1. 题目 给你一个整数 n &#xff0c;请你将 1 到 n 的二进制表示连接起来&#xff0c;并返回连接结果对应的 十进制 数字对 10^9 7 取余的结果。 示例 1&#xff1a; 输入&#xff1a;n 1 输出&#xff1a;1 解释&#xff1a;二进制的 "1"…

网页信息抓取进阶 支持Js生成数据 Jsoup的不足之处

转载请标明出处&#xff1a;http://blog.csdn.net/lmj623565791/article/details/23866427 今天又遇到一个网页数据抓取的任务&#xff0c;给大家分享下。 说道网页信息抓取&#xff0c;相信Jsoup基本是首选的工具&#xff0c;完全的类JQuery操作&#xff0c;让人感觉很舒服。但…

jmeter进行http压力测试(图文小教程)

下载地址&#xff1a;http://jmeter.apache.org/download_jmeter.cgiJMeter基于Java开发&#xff0c;需要系统有安装JDK环境。解压后进入bin目录&#xff0c;点击jmeter.bat1、添加线程组&#xff1a; 测试计划 -> 添加 -> Threads(User) -> 线程组&#xff0c;添加后…

LeetCode 1681. 最小不兼容性(回溯+剪枝)

文章目录1. 题目2. 解题1. 题目 给你一个整数数组 nums​​​ 和一个整数 k 。你需要将这个数组划分到 k 个相同大小的子集中&#xff0c;使得同一个子集里面没有两个相同的元素。 一个子集的 不兼容性 是该子集里面最大值和最小值的差。 请你返回将数组分成 k 个子集后&…

css bug 集2

问题浏览器DEMO解决方法Hacking Rules:property:all-ie\9; property:gte-ie8\0;*property:lte-ie7; property:ie7; _property:ie6;1input[button | submit] 不能用 margin:0 auto; 居中IE8bug | fixed为input添加width2body{overflow:hidden;}没有去掉滚动条IE6/7bug | fixed设…

python读取Excel实例详细教程

1.操作步骤&#xff1a;&#xff08;1&#xff09;安装python官方Excel库-->xlrd&#xff08;2&#xff09;获取Excel文件位置并读取&#xff08;3&#xff09;读取sheet&#xff08;4&#xff09;读取指定rows和cols内容2.示例代码&#xff1a; # -*- coding: utf-8 -*-imp…

使用CNN进行情感分类

文章目录1. 读取数据2. 数据集拆分3. 文本向量化4. 建立CNN模型5. 训练、测试参考 基于深度学习的自然语言处理 1. 读取数据 数据文件&#xff1a; import numpy as np import pandas as pddata pd.read_csv("yelp_labelled.txt", sep\t, names[sentence, label…

人生苦短,我用Python(Python快速教程 - 基础篇)

Life is short, you need Python 人生苦短&#xff0c;我用Python -- Bruce Eckel 5.1 Python简介 本章将介绍Python的最基本语法&#xff0c;以及一些和深度学习还有计算机视觉最相关的基本使用。 5.1.1 Python简史 Python是一门解释型的高级编程语言&#xff0c;特点是简单明…

A5营销:传统企业站优化正文内容在SEO方面的三大注意事项

关于网站的正文内容&#xff0c;相信站长们都应该比较清楚正文内容的作用以及给网站所带来的价值&#xff0c;优质的网站正文内容可以给用户带来阅读体验和帮助、可以给网站带来庞大的流量、可以让蜘蛛一次吃个饱等等。当然&#xff0c;优质的正文内容不光是内容的质量正重要&a…

Linux环境变量配置的三个方法--/etc/profile,~/.bashrc,shell

【环境配置的原因】在windows系统下&#xff0c;很多软件的安装都需要设置环境变量&#xff0c;比如安装JAVA JDK。如果不安装环境变量&#xff0c;在非软件安装的目录下运行javac命令&#xff0c;将会报告“找不到文件”类似的错误。那么&#xff0c;什么是环境变量呢&#xf…

LeetCode 1000. 合并石头的最低成本(区间DP)

文章目录1. 题目2. 解题1. 题目 有 N 堆石头排成一排&#xff0c;第 i 堆中有 stones[i] 块石头。 每次移动&#xff08;move&#xff09;需要将连续的 K 堆石头合并为一堆&#xff0c;而这个移动的成本为这 K 堆石头的总数。 找出把所有石头合并成一堆的最低成本。如果不可…

Android 自定义View (一)

转载请标明出处&#xff1a;http://blog.csdn.net/lmj623565791/article/details/24252901 很多的Android入门程序猿来说对于Android自定义View&#xff0c;可能都是比较恐惧的&#xff0c;但是这又是高手进阶的必经之路&#xff0c;所有准备在自定义View上面花一些功夫&#x…

Python导入全局、局部模块以及如何让避免循环导入

许多年来不时使用Python的人并不是都知道Python的导入机制其实非常灵活。在本文中&#xff0c;我们将探讨以下话题&#xff1a; 常规导入&#xff08;regular imports&#xff09;使用from语句导入相对导入&#xff08;relative imports&#xff09;可选导入&#xff08;option…

LeetCode 995. K 连续位的最小翻转次数(差分思想)

文章目录1. 题目2. 解题1. 题目 在仅包含 0 和 1 的数组 A 中&#xff0c;一次 K 位翻转包括选择一个长度为 K 的&#xff08;连续&#xff09;子数组&#xff0c;同时将子数组中的每个 0 更改为 1&#xff0c;而每个 1 更改为 0。 返回所需的 K 位翻转的次数&#xff0c;以便…

如何自学人工智能?

不少同学跃跃欲试&#xff0c;想投入 AI 的怀抱&#xff0c;但苦于不知如何下手。其中&#xff0c;人工智能的核心就是机器学习&#xff08;Machine Learning&#xff09;&#xff0c;它是使计算机具有智能的根本途径&#xff0c;其应用遍及人工智能的各个领域。 我们今天就来分…

2014/4/16

2014-04-16 crystal 14:10:53 股东大会开了没今天 crystal 14:11:08 今天296创新高了 crystal 2014/4/16 14:08:33 32.9 米多爸爸 2014/4/16 14:08:42 296不错&#xff0c;不是今天开股东大会吗 米多爸爸 2014/4/16 14:08:51 延期了&…

AI 人工智能学习经典书单

人工智能相关岗位中&#xff0c;涉及到的内容包含&#xff1a;算法、深度学习、机器学习、自然语言处理、数据结构、Tensorflow、Python 、数据挖掘、搜索开发、神经网络、视觉度量、图像识别、语音识别、推荐系统、系统算法、图像算法、数据分析、概率编程、计算机数学、数据仓…

牛客 牛牛爱喝酒(模拟)

文章目录1. 题目2. 解题1. 题目 链接&#xff1a;https://ac.nowcoder.com/acm/contest/9752/A 来源&#xff1a;牛客网 牛牛是一个酒鬼&#xff0c;非常爱喝酒&#xff0c; 一瓶酒m元钱&#xff0c; 两个酒瓶可以换一瓶酒&#xff0c; 四个瓶盖可以换一瓶酒&#xff0c; 现在…

零基础30分钟开启你的快速开发之旅

零基础30分钟开启你快速开发之旅 1. 前言 接触AgileEAS.NET SOA 中间件平台&#xff08;以下简称EAS.NET平台&#xff09;有4个多月时间&#xff0c;经过试用认为可以把它作为一个开发的基础平台&#xff0c;开发团队可以把开发的重点放在需求的把控和项目的交付上&#xff0c;…