package com.example.getaac264ts;
import java.io.BufferedOutputStream;
import java.io.DataInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.RandomAccessFile;
import android.hardware.Camera;
import android.hardware.Camera.CameraInfo;
import android.hardware.Camera.Parameters;
import android.media.MediaRecorder;
import android.net.LocalServerSocket;
import android.net.LocalSocket;
import android.net.LocalSocketAddress;
import android.os.Bundle;
import android.app.Activity;
import android.content.Context;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.util.Log;
import android.view.SurfaceHolder;
import android.view.SurfaceHolder.Callback;
import android.view.SurfaceView;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class MainActivity extends Activity implements Callback, Runnable{
private static final String TAG = "H264_AAC";
private Camera mCamera;
Button sendButton;
Button receivedButton;
//初始化MediaRecorder
private MediaRecorder mMediaRecorder = null;
//private int videoWidth = 1280;
//private int videoHeight = 720;
private int videoWidth = 640;
private int videoHeight = 480;
private int videoRate = 25;
private String fd = "/sdcard/MediaRecorder/videotest.3gp";
private SurfaceView mSurfaceView;
private SurfaceHolder mSurfaceHolder;
private boolean mMediaRecorderRecording = false;
LocalServerSocket lss;
LocalSocket receiver, sender;
private final int MAXFRAMEBUFFER = 20480;//20K
private byte[] h264frame = new byte[MAXFRAMEBUFFER];
private final byte[] head = new byte[]{0x00,0x00,0x00,0x01};
private RandomAccessFile file_test;
private byte[] SPS;
private byte[] PPS;
private int StartMdatPlace = 0;
public MediaRecorder mediarecorder;
public LocalSocket senderaac;
public LocalSocket receivedaac;
public LocalServerSocket lssaac;
public static final int BUFFER_SIZE=5000;
public InputStream inputStream;
public Recoder recoder;
byte[] buffer;
public BufferedOutputStream bufferedoutstream;
public RandomAccessFile raf;
public boolean ISrunning;
public Thread getAudio;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
sendButton=(Button)findViewById(R.id.start);
receivedButton=(Button)findViewById(R.id.stop);
InitSurfaceView();
InitMediaSharePreference();
sendButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Log.e("fdsa", "start button.....");
ISrunning=true;
recoder=new Recoder();
recoder.start();
Log.e("fdsfd", "before the MediaRorder Init");
MediaRecoderInit();
Log.e("fdsfd", "after the MediaRorder Init");
getAudio=new GetAudio();
getAudio.start();
}
});
receivedButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Log.e("fdsa", "stop the recording...");
ISrunning=false;
if (recoder!=null) {
recoder.interrupt();
}
if(mediarecorder!=null){
mediarecorder.stop();
mediarecorder.release();
mediarecorder=null;
}
if (inputStream!=null) {
try {
inputStream.close();
}
MediaRecoder分别获取音频、视频保存本地
最新推荐文章于 2023-07-30 10:15:00 发布