您的位置:首页 > 移动开发 > Android开发

Android:音视频刻录

2016-01-04 15:37 369 查看
<uses-permission android:name="android.permission.RECORD_AUDIO"/>

<uses-permission android:name="android.permission.CAMERA"/>

<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

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.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;

        }

    }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: