代码如下:
//开始录像
public void recorder(){
try {
myRecAudioFile = File.createTempFile(strTempFile,".3gp",myRecAudioDir);
recorder = new MediaRecorder();
recorder.setPreviewDisplay(surfaceHolder.getSurface());
recorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);
//设置录音源为麦克风
recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
//设置输出格式为3gp
recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
//设置视频大小
recorder.setVideoSize(176,144);
recorder.setVideoFrameRate(15);
//设置视频编码
recorder.setVideoEncoder(MediaRecorder.VideoEncoder.H263);
//设置音频编码
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
recorder.setMaxDuration(10000);
recorder.setOutputFile(myRecAudioFile.getAbsolutePath());
// recorder.setOutputFile("/sdcard/v.3gp");
recorder.prepare();
recorder.start();
recording = true;
isStopRecord = false;
} catch (IOException e) {
e.printStackTrace();
}
}当我点击录制时,一开始录制就自动关闭了,不知道是什么原因,请大家多多指教!!!
//开始录像
public void recorder(){
try {
myRecAudioFile = File.createTempFile(strTempFile,".3gp",myRecAudioDir);
recorder = new MediaRecorder();
recorder.setPreviewDisplay(surfaceHolder.getSurface());
recorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);
//设置录音源为麦克风
recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
//设置输出格式为3gp
recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
//设置视频大小
recorder.setVideoSize(176,144);
recorder.setVideoFrameRate(15);
//设置视频编码
recorder.setVideoEncoder(MediaRecorder.VideoEncoder.H263);
//设置音频编码
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
recorder.setMaxDuration(10000);
recorder.setOutputFile(myRecAudioFile.getAbsolutePath());
// recorder.setOutputFile("/sdcard/v.3gp");
recorder.prepare();
recorder.start();
recording = true;
isStopRecord = false;
} catch (IOException e) {
e.printStackTrace();
}
}当我点击录制时,一开始录制就自动关闭了,不知道是什么原因,请大家多多指教!!!
解决方案 »
- android中intent使用疑惑
- 向在android项目中用过maven来管理的人求教
- 使用百度地图进行定位.无法调用到onGetAddrResult这个方法
- XML解析时,执行了startDocument,但是没有执行startElement,这是神马情况!求教~~~~
- 编译android源码时,如何指定输出路径?
- Android日期设定的问题
- 监控短信,在BroadcastReceiver中发送邮件。。。模拟器正常,安装到真机上就不行了。。。求救
- android vlc编译出错
- android下编译C++(STL)报错
- 菜鸟!问个问题关于socket通信
- 求解ListView中EditText问题
- iMX53 QSB板怎么使用fastboot功能下载镜像到SD卡,我的老是不行!
楼主的录制方法和下面介绍的也基本一样啊,没看出来什么原因android视频录制实现方法
http://www.rosoo.net/a/mobile_andriod/200912/8158.html关于Android音频、视频录制类MediaRecorder
http://blog.csdn.net/iamlazybone/archive/2010/07/25/5764118.aspx
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />2. 将e.printStackTrace();打印出来的log发出来,方便分析。
<uses-permission android:name="android.permission.CAMERA"></uses-permission>
<uses-permission android:name="android.permission.RECORD_AUDIO"></uses-permission>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>刚开始是录制了9秒钟后自动关闭,录制的视频也可以看,后来改了一下代码,现在一开始录制就自动关闭了,文件全是0字节.
at android.media.MediaRecorder.start(Native Method)
at xy.phone.service.PhoneListenerService$1.onCallStateChanged(PhoneListenerService.java:112)
at android.telephony.PhoneStateListener$2.handleMessage(PhoneStateListener.java:303)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:123)
at android.app.ActivityThread.main(ActivityThread.java:4363)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:521)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
at dalvik.system.NativeStart.main(Native Method)
请高手帮我看看这个问题了,非常感谢!
源码是:
recorder = new MediaRecorder();
recorder.setAudioSource(MediaRecorder.AudioSource.MIC); //来自于麦克风
recorder
.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4); //输出格式mp4
recorder
.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); //编码
SimpleDateFormat format = new SimpleDateFormat(
"yyMMddHHmmss");
String path = Environment.getExternalStorageDirectory().getAbsolutePath() + "/phoneRecordes/";
Log.i(TAG, "PATH:"+path);
if(this.incomingNumber.equals("")){
this.incomingNumber = "outCall";
}
filename = path + this.incomingNumber + "_"
+ format.format(new Date()) + ".mp4";
recorder.setOutputFile(filename);
recorder.prepare();
recorder.start();
isRecord = true;
很多人用运行这个都出了问题,我后来也发现了问题,在1.6版本上可以运行,但1.6以上的版本就会出问题,原因是1.6版本以上的SDK封装了一部分功能.你可以加我QQ:412097740 或发邮件讨论:[email protected]