Android開發之視頻錄製1

來源:互聯網
上載者:User

標籤:

Android開發之視頻錄製 (2011-10-18 17:47:46) 轉載▼
標籤: android 視頻錄製 surfaceview 雜談 分類: 3GAndroid學習筆記
要使用視頻錄製功能,要用到MediaRecorder這個類,以及SurfaceView組建public class MainActivity extends Activity {public static final String TAG = "MainActivity";   @Overrideprotected void onDestroy() {  mediaRecorder.release();super.onDestroy();}   private SurfaceView surfaceView;   private Button btn_start;   private Button btn_stop;   private MediaRecorder mediaRecorder;   private boolean record;    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);        mediaRecorder = new MediaRecorder();        surfaceView = (SurfaceView) findViewById(R.id.surfaceview);               this.surfaceView.getHolder().setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);        this.surfaceView.getHolder().setFixedSize(320, 240);//設定解析度        btn_start = (Button) findViewById(R.id.btn_start);        btn_stop=(Button) findViewById(R.id.btn_stop);        ClickListener clickListener = new ClickListener();        btn_start.setOnClickListener(clickListener);        btn_stop.setOnClickListener(clickListener);    }    private final class ClickListener implements View.OnClickListener{public void onClick(View v) {if(!Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){Toast.makeText(MainActivity.this, "SD卡不存在或防寫保護!", 1).show();return ;}    try {switch(v.getId()){case R.id.btn_start:mediaRecorder.reset();mediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA); //從照相機採集視頻mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC); mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);mediaRecorder.setVideoSize(320, 240);mediaRecorder.setVideoFrameRate(3); //每秒3幀mediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H263); //設定視頻編碼方式mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);File videoFile = new File(Environment.getExternalStorageDirectory(), System.currentTimeMillis()+".3gp");mediaRecorder.setOutputFile(videoFile.getAbsolutePath());mediaRecorder.setPreviewDisplay(surfaceView.getHolder().getSurface());mediaRecorder.prepare();//預期準備mediaRecorder.start();//開始燒錄record = true;break;case R.id.btn_stop:if(record){mediaRecorder.stop();record = false;}break;}} catch (Exception e) {Log.e(TAG, e.toString());}}       }     }

Android開發之視頻錄製1

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.