Android自定义录象机,录制一段视频
来源:互联网 发布:阿里云域名备案幕布 编辑:程序博客网 时间:2024/05/18 02:25
XML: main.xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout android:id="@+id/activity_main" 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="com.liang.test1.MainActivity" android:orientation="vertical"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content"> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="start" android:onClick="start"/> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="stop" android:onClick="stop"/> </LinearLayout> <SurfaceView android:id="@+id/sf" android:layout_width="match_parent" android:layout_height="match_parent"/></LinearLayout>xml:mainifest.xml
<?xml version="1.0" encoding="utf-8"?><manifest package="com.liang.test1" xmlns:android="http://schemas.android.com/apk/res/android"> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.CAMERA"/> <uses-permission android:name="android.permission.RECORD_AUDIO"/> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN"/> <category android:name="android.intent.category.LAUNCHER"/> </intent-filter> </activity> </application></manifest>MainActivity.java:
package com.liang.test1;import android.media.CamcorderProfile;import android.media.CameraProfile;import android.media.MediaRecorder;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.util.Log;import android.view.SurfaceHolder;import android.view.SurfaceView;import android.view.View;public class MainActivity extends AppCompatActivity implements SurfaceHolder.Callback { private SurfaceView sf; private SurfaceHolder sh; private MediaRecorder mr=new MediaRecorder(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); sf=(SurfaceView)findViewById(R.id.sf); sh=sf.getHolder(); sh.addCallback(this); } @Override public void surfaceCreated(SurfaceHolder surfaceHolder) { mr.setAudioSource(MediaRecorder.AudioSource.MIC); mr.setVideoSource(MediaRecorder.VideoSource.CAMERA); mr.setProfile(CamcorderProfile.get(CameraProfile.QUALITY_HIGH)); mr.setPreviewDisplay(sh.getSurface()); mr.setOutputFile("mnt/sdcard/视频文件名.mp4"); try { mr.prepare(); } catch (Exception e) { Log.e("tag","tag"); e.printStackTrace(); finish(); } } @Override public void surfaceChanged(SurfaceHolder surfaceHolder, int i, int i1, int i2) { } @Override public void surfaceDestroyed(SurfaceHolder surfaceHolder) { mr.release(); } public void start(View v){ mr.start(); } public void stop(View v){ mr.stop(); }}
1 0
- Android自定义录象机,录制一段视频
- android自定义视频录制
- Android自定义录制视频
- android 竖屏自定义录制视频
- Android 自定义视频录制终极解决方案(翻转问题)
- Android自定义view之仿微信录制视频按钮
- Android自定义视频录制时的带进度条的按钮
- android视频录制(调用系统视频录制)
- Android 视频录制
- android视频录制
- android 音视频录制
- android视频录制例子
- Android录制视频(五)
- Android录制视频(四)
- Android录制视频(三)
- Android录制视频(二)
- Android录制视频(一)
- Android视频录制
- 基于物理的渲染技术(PBR)系列四
- Rxjava基本用法总结
- listView点击一个Item,改变的是其他Item
- ExecutorService 的理解与使用
- 从底层角度看ASP.NET-A low-level Look at the ASP.NET
- Android自定义录象机,录制一段视频
- Js数组去重方法
- MySQL漂流记之常用(一)--左连接+右连接+内连接的本质区别
- Missing artifact com.sun:tools:jar 1.5.0 终极解决方法
- 特殊字数验证,除了文字其他都算半个字符
- 安装cocoapods(踩坑)
- GPU与CPU比较
- (ubuntu 下)tensorflow 的安装及版本升级
- iOS两种方法删除NSUserDefaults所有记录