android视频刻录源代码

main.java文件

import java.io.File;

import android.media.MediaRecorder;
import android.os.Bundle;
import android.os.Environment;
import android.app.Activity;
import android.view.MotionEvent;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import android.view.View;
import android.view.ViewGroup;
import android.view.Window;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.RelativeLayout;
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.activity_main);

SurfaceView surfaceView=(SurfaceView) this.findViewById(R.id.surfaceView);
surfaceView.getHolder().setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
surfaceView.getHolder().setKeepScreenOn(true);
surfaceView.getHolder().setFixedSize(176, 144);

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

}

strings.xml文件

<?xml version="1.0" encoding="utf-8"?>
<resources>


    <string name="app_name">视频录制</string>
    
    <string name="hello_world">Hello world!</string>
    <string name="recordbutton">刻录</string>
    <string name="stopbutton">停止</string>


</resources>

activity_main.xml文件

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
     >


    <SurfaceView
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:id="@+id/surfaceView" 
        />
    <RelativeLayout 
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        
        android:id="@+id/layout"
        android:visibility="gone"
        >
        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/recordbutton"
            android:layout_alignParentRight="True"
            
            android:layout_alignParentBottom="True"
           
            android:layout_marginRight="10dp"
            android:id="@+id/recordbutton"
            android:onClick="record"
            
            />
        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/stopbutton"
            android:layout_toLeftOf="@id/recordbutton"
            android:layout_alignTop="@id/recordbutton"
             android:layout_marginRight="30dp"
            android:id="@+id/stopbutton"
            android:onClick="record"
        />
    </RelativeLayout>


</FrameLayout>

运行这段android程序之后,安装到虚拟机或者真机上出现的错误如图:

望各位大神们帮忙看看这个怎么修改?


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值