Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了在Android中录制,保存和播放视频大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试制作一个使用相机应用程序录制视频的应用程序,然后将该视频保存在SD卡上,以便我可以播放它.我有一些代码,但我已经迷失了如何继续,因为我是 Android的初学者.

我的活动:

public class Camcorder extends Activity {

     private CamcorderView camcorderView; 
     private Boolean recording = false; 

     /** Called when the activity is first created. */ 
     @Override 
     public void onCreate(Bundle savedInstanceStatE) { 
          super.onCreate(savedInstanceStatE);
          //irrelevant code

          camcorderView = (CamcorderView) findViewById(R.id.camcorder_preview); 
     } 

     @Override 
     public Boolean onKeyDown(int keyCode,KeyEvent event) 
     { 
         if (keyCode == KeyEvent.KEYCODE_DPAD_CENTER) 
         { 
          if (recording) { 
                camcorderView.stopRecording();
                finish(); 
            } else { 
                recording = true; 
                camcorderView.startRecording(); 
            } 
             return true; 
         } 
         return super.onKeyDown(keyCode,event); 
     }       
}

CamcorderView类:

public class CamcorderView extends SurfaceView implements
    SurfaceHolder.CallBACk {

MediaRecorder recorder;
SurfaceHolder holder;
String outputFile = "/sdcard/default.mp4";

public CamcorderView(Context context,AttributeSet attrs) {
    super(context,attrs);

    holder = getHolder();
    holder.addCallBACk(this);
    holder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);

    recorder = new MediaRecorder();
    recorder.setAudiosource(MediaRecorder.Audiosource.MIC);
    recorder.setVideosource(MediaRecorder.Videosource.DEFAULT);
    recorder.setOutputFormat(MediaRecorder.outputFormat.MPEG_4);
    recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
    recorder.setVideoEncoder(MediaRecorder.VideoEncoder.MPEG_4_Sp);
    // recorder.setVideoSize(480,320);
    // recorder.setVideoFrameRate(15);
    // recorder.setMaxDuration(10000);
}

public void surfaceCreated(SurfaceHolder holder) {
    recorder.setOutputFile(outputFilE);
    recorder.setPreviewDisplay(holder.getSurface());
    if (recorder != null) {
        try {
            recorder.prepare();
        } catch (IllegalStateException E) {
            Log.e("IllegalStateException",e.toString());
        } catch (IOException E) {
            Log.e("IOException",e.toString());
        }
    }
}

public void surfaceChanged(SurfaceHolder holder,int format,int width,int height) {
}

public void surfaceDestroyed(SurfaceHolder holder) {
}

public void setOutputFile(String fileName)
{
    outputFile = filename;
    recorder.setOutputFile(fileName);
}

public void startRecording()
{
    recorder.start();
}

public void stopRecording()
{
    recorder.stop();
    recorder.release();
}
}

解决方法

嘿,我想你没试过这个.所以请检查此链接,如果您有任何问题,请告诉我
video recording example

大佬总结

以上是大佬教程为你收集整理的在Android中录制,保存和播放视频全部内容,希望文章能够帮你解决在Android中录制,保存和播放视频所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。