我做了一个录制视频然后上传和播放的demo,但是播放的视频没有声音
草民一号 2017-01-10 03:10:27
try {
if (file_with != null) {//如果先前已经申请过一个文件
file_with.DeleteFile();
}
file_with = new File_with_();
mediaRecorder = new MediaRecorder();// 创建mediarecorder对象
if (turncamera == 0) {
camera = Camera.open(Camera.CameraInfo.CAMERA_FACING_BACK);
} else {
camera = Camera.open(CameraInfo.CAMERA_FACING_FRONT);
}
// camera.setPreviewDisplay(mSurfaceView.getHolder());
camera.setDisplayOrientation(90);
// camera.setPreviewDisplay(mSurfaceView.getHolder());
updateCameraParameters();
camera.unlock();
// camera.startPreview();
mediaRecorder.setCamera(camera);
// 设置录制视频源为Camera(相机)
//等于0则设置录音
mediaRecorder.setVideoSource(Camera.CameraInfo.CAMERA_FACING_BACK);
//设置音频采集方式
mediaRecorder.setAudioSource(AudioSource.MIC);
//设置输出格式
mediaRecorder.setOutputFormat(OutputFormat.MPEG_4);
//设置audio编码方式
mediaRecorder.setOrientationHint(90);
mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
//设置最大限时
//mediaRecorder.setMaxDuration(60*1000);
//录像旋转90度
//mediaRecorder.setOrientationHint(90);
// 设置录制完成后视频的封装格式THREE_GPP为3gp.MPEG_4为mp4
//mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
// 设置录制的视频编码h263 h264
mediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264);
//设置高质量录制,改变码率
mediaRecorder.setVideoEncodingBitRate(5 * 1024 * 1024);
//设置视频录制的分辨率。必须放在设置编码和格式的后面,否则报错
mediaRecorder.setVideoSize(176, 144);
// 设置录制的视频帧率。必须放在设置编码和格式的后面,否则报错
mediaRecorder.setVideoFrameRate(20);
// 设置视频文件输出的路径
mediaRecorder.setOutputFile(file_with.TestFile(file).getPath());
// 设置捕获视频图像的预览界面
mediaRecorder.setPreviewDisplay(mSurfaceView.getHolder().getSurface());
mediaRecorder.setOnErrorListener(new OnErrorListener() {
@Override
public void onError(MediaRecorder mr, int what, int extra) {
// 发生错误,停止录制
mediaRecorder.stop();
mediaRecorder.release();
}
});
// 准备、开始
mediaRecorder.prepare();
mediaRecorder.start();
} catch (Exception e) {
e.printStackTrace();
}
不知道会不会是音频编码问题,本地的播放器是可以播放出声音的