• 刻录视频


    public class MainActivity extends Activity {
        private SurfaceView surfaceView;
        private RelativeLayout layout;
        private Button recordbutton;
        private Button stopbutton;
        private MediaRecorder mediaRecorder;
        
        @Override
        public 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.main);
            
            surfaceView = (SurfaceView) this.findViewById(R.id.surfaceView);
            //设置对数据不用缓存直接输出到SurfaceView上
            surfaceView.getHolder().setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
            //设置屏幕大小
            surfaceView.getHolder().setFixedSize(176, 144);
            //设置屏幕常亮
            surfaceView.getHolder().setKeepScreenOn(true);
            
            layout = (RelativeLayout) this.findViewById(R.id.layout);
            recordbutton = (Button) this.findViewById(R.id.recordbutton);
            stopbutton = (Button) this.findViewById(R.id.stopbutton);
        }
    
        @Override
            //处理屏幕触摸事件
        public boolean onTouchEvent(MotionEvent event) {
            if(event.getAction() == MotionEvent.ACTION_DOWN){
                layout.setVisibility(ViewGroup.VISIBLE);
            }
            return super.onTouchEvent(event);
        }
        //刻录方法
        public void record(View v){
            switch (v.getId()) {
            case R.id.recordbutton:
                try{
                    File videoFile = new File(Environment.getExternalStorageDirectory(), System.currentTimeMillis()+ ".3gp");
                    mediaRecorder = new MediaRecorder();//创建刻录对象
                    //设置音频来源
                    mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
                    //设置视频来源
                    mediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);
                    //设置文件输出格式
                    mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
                    //设置视频大小
                    mediaRecorder.setVideoSize(320, 240);
                    //设置每秒多少张
                    mediaRecorder.setVideoFrameRate(5);
                    //设置音频编码
                    mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
                    //设置视频编码
                    mediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264);
                    //设置文件输出方向
                    mediaRecorder.setOutputFile(videoFile.getAbsolutePath());
                    //设置预览到那块
                    mediaRecorder.setPreviewDisplay(surfaceView.getHolder().getSurface());
                    //开始准备
                    mediaRecorder.prepare();
                    //开始刻录
                    mediaRecorder.start();
                }catch (Exception e) {
                    e.printStackTrace();
                }
                recordbutton.setEnabled(false);
                stopbutton.setEnabled(true);
                break;
    
            case R.id.stopbutton:
                if(mediaRecorder!=null){
                    //结束刻录
                    mediaRecorder.stop();
                    //释放资源
                    mediaRecorder.release();
                    mediaRecorder = null;
                }
                recordbutton.setEnabled(true);
                stopbutton.setEnabled(false);
                break;
            }
        }
    }
  • 相关阅读:
    清除浮动
    echarts设置小图标位置
    dedecms 顶级栏目内容显示
    dedecms 后台网站 标题设置
    mouseover,mouseenter,mouseout,mouseleave的区别
    texterea 水平居中
    echarts x轴文字换行显示
    echarts 拐点添加图片
    css首行缩进2个字符
    bootstrap 内边框样式
  • 原文地址:https://www.cnblogs.com/heml/p/3516185.html
Copyright © 2020-2023  润新知