MediaRecorder录音暂停 怎样利用MediaRecorder实现录音暂停功能 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 参考文档上的void stop()Stops recording.暂停的函数没有! 只有停止 API 上应该有 pause 吧 package cn.itcast.video;import android.app.Activity;import android.content.Context;import android.media.MediaRecorder;import android.os.Bundle;import android.util.Log;import android.view.Display;import android.view.SurfaceHolder;import android.view.SurfaceView;import android.view.View;import android.view.WindowManager;import android.widget.Button;public class VideoRecordActivity extends Activity { private static final String TAG = "VideoRecordActivity"; private Button startButton; private Button stopButton; private boolean record; private MediaRecorder recorder; private SurfaceView surfaceView; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); recorder = new MediaRecorder(); ButtonListener listener = new ButtonListener(); startButton = (Button)this.findViewById(R.id.start); stopButton = (Button)this.findViewById(R.id.stop); this.surfaceView = (SurfaceView) this.findViewById(R.id.surfaceView); startButton.setOnClickListener(listener); stopButton.setOnClickListener(listener); stopButton.setEnabled(false);//不可用 /*下面设置Surface不维护自己的缓冲区,而是等待屏幕的渲染引擎将内容推送到用户面前*/ this.surfaceView.getHolder().setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS); this.surfaceView.getHolder().setFixedSize(320, 240);//设置分辨率 this.surfaceView.getHolder().setKeepScreenOn(true); } private final class ButtonListener implements View.OnClickListener{ @Override public void onClick(View v) { try { switch (v.getId()) { case R.id.start: stopButton.setEnabled(true);//设置可用 startButton.setEnabled(false); recorder.reset(); recorder.setVideoSource(MediaRecorder.VideoSource.CAMERA); //从照相机采集视频 recorder.setAudioSource(MediaRecorder.AudioSource.MIC); recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP); recorder.setVideoSize(320, 240); recorder.setVideoFrameRate(3); //每秒3帧 recorder.setVideoEncoder(MediaRecorder.VideoEncoder.H263); //设置视频编码方式 recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); recorder.setOutputFile("/mnt/sdcard/itcast.3gp"); recorder.setPreviewDisplay(surfaceView.getHolder().getSurface()); recorder.prepare();//预期准备 recorder.start();//开始刻录 record = true; break; case R.id.stop: stopButton.setEnabled(false); startButton.setEnabled(true); if(record){ recorder.stop();//停止刻录 record = false; } break; } } catch (Exception e) { Log.e(TAG, e.toString()); } } }} 如何曲线解决呢?不要说NDK,因为我还不会。 一键灭屏功能的问题 Android UDP broadcast 缩放动画如何做到目标view中心位置不变?? 如何实现向Android自带的通讯录中的联系人按照拼音首字母(A,B,C,D......)分组分类 求教 android popupwindow播放视频问题 如何把自己的.so文件写进system/lib文件夹下面 Android 目录结构 装个安卓开发环境真难啊? android:listView的滚动条怎么设置的? android AsyncHttpClient 经常性超时,连接时ios没有问题 apk文件无法直接下载 自制android 刷机包,刷机失败。
Stops recording.暂停的函数没有!
只有停止 API 上应该有 pause 吧
package cn.itcast.video;import android.app.Activity;
import android.content.Context;
import android.media.MediaRecorder;
import android.os.Bundle;
import android.util.Log;
import android.view.Display;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import android.view.View;
import android.view.WindowManager;
import android.widget.Button;public class VideoRecordActivity extends Activity {
private static final String TAG = "VideoRecordActivity";
private Button startButton;
private Button stopButton;
private boolean record;
private MediaRecorder recorder;
private SurfaceView surfaceView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
recorder = new MediaRecorder();
ButtonListener listener = new ButtonListener();
startButton = (Button)this.findViewById(R.id.start);
stopButton = (Button)this.findViewById(R.id.stop);
this.surfaceView = (SurfaceView) this.findViewById(R.id.surfaceView);
startButton.setOnClickListener(listener);
stopButton.setOnClickListener(listener);
stopButton.setEnabled(false);//不可用
/*下面设置Surface不维护自己的缓冲区,而是等待屏幕的渲染引擎将内容推送到用户面前*/
this.surfaceView.getHolder().setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
this.surfaceView.getHolder().setFixedSize(320, 240);//设置分辨率
this.surfaceView.getHolder().setKeepScreenOn(true);
}
private final class ButtonListener implements View.OnClickListener{
@Override
public void onClick(View v) {
try {
switch (v.getId()) {
case R.id.start:
stopButton.setEnabled(true);//设置可用
startButton.setEnabled(false);
recorder.reset();
recorder.setVideoSource(MediaRecorder.VideoSource.CAMERA); //从照相机采集视频 recorder.setAudioSource(MediaRecorder.AudioSource.MIC); recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
recorder.setVideoSize(320, 240);
recorder.setVideoFrameRate(3); //每秒3帧
recorder.setVideoEncoder(MediaRecorder.VideoEncoder.H263); //设置视频编码方式 recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
recorder.setOutputFile("/mnt/sdcard/itcast.3gp");
recorder.setPreviewDisplay(surfaceView.getHolder().getSurface());
recorder.prepare();//预期准备
recorder.start();//开始刻录
record = true;
break;
case R.id.stop:
stopButton.setEnabled(false);
startButton.setEnabled(true);
if(record){
recorder.stop();//停止刻录
record = false;
}
break;
}
} catch (Exception e) {
Log.e(TAG, e.toString());
}
}
}
}