public class VideoActivity extends Activity implements SurfaceHolder.Callback {

private Button start;// 开始录制按钮

private Button stop;// 停止录制按钮

private MediaRecorder mediarecorder;// 录制视频的类

private SurfaceView surfaceview;// 显示视频的控件

private SurfaceHolder surfaceHolder;

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

//        requestWindowFeature(Window.FEATURE_NO_TITLE);// 去掉标题栏

//        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,

//                WindowManager.LayoutParams.FLAG_FULLSCREEN);// 设置全屏

设置横屏显示

//        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

选择支持半透明模式,在有surfaceview的activity中使用。

//        getWindow().setFormat(PixelFormat.TRANSLUCENT);

setContentView(R.layout.video);

init();

}

private void init() {

start = (Button) this.findViewById(R.id.start);

stop = (Button) this.findViewById(R.id.stop);

start.setOnClickListener(new TestVideoListener());

stop.setOnClickListener(new TestVideoListener());

surfaceview = (SurfaceView) this.findViewById(R.id.surfaceview);

SurfaceHolder holder = surfaceview.getHolder();// 取得holder

holder.addCallback(this); // holder加入回调接口

// setType必须设置,要不出错.

holder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);

}

Camera camera;

class TestVideoListener implements OnClickListener {

@Override

public void onClick(View v) {

if (v == start) {

mediarecorder = new MediaRecorder();// 创建mediarecorder对象

// 设置录制视频源为Camera(相机)

camera = Camera.open(Camera.CameraInfo.CAMERA_FACING_BACK);

if (camera != null) {

//                    camera.setDisplayOrientation(90);//摄像图旋转90度

camera.unlock();

mediarecorder.setCamera(camera);

}

mediarecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);

mediarecorder.setAudioSource(MediaRecorder.AudioSource.MIC);

mediarecorder.setProfile(CamcorderProfile.get(CamcorderProfile.QUALITY_HIGH));

mediarecorder.setPreviewDisplay(surfaceHolder.getSurface());

//                mediarecorder.setOrientationHint(90);//视频旋转90度,没有用

System.out.println("手机默认地址:" + Environment.getExternalStorageDirectory());

// 设置视频文件输出的路径

mediarecorder.setOutputFile(Environment.getExternalStorageDirectory() + "/" + "test.mp4");

try {

// 准备录制

mediarecorder.prepare();

// 开始录制

mediarecorder.start();

} catch (IllegalStateException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

if (v == stop) {

if (mediarecorder != null) {

// 停止录制

mediarecorder.stop();

// 释放资源

mediarecorder.release();

mediarecorder = null;

}

}

}

}

@Override

public void surfaceChanged(SurfaceHolder holder, int format, int width,

int height) {

// 将holder,这个holder为开始在oncreat里面取得的holder,将它赋给surfaceHolder

surfaceHolder = holder;

}

@Override

public void surfaceCreated(SurfaceHolder holder) {

// 将holder,这个holder为开始在oncreat里面取得的holder,将它赋给surfaceHolder

surfaceHolder = holder;

}

@Override

public void surfaceDestroyed(SurfaceHolder holder) {

// surfaceDestroyed的时候同时对象设置为null

surfaceview = null;

surfaceHolder = null;

mediarecorder = null;

}

}

像做朋友圈视频那样的,竖着拿手机,然后压缩显示出横着拿手机拍摄的效果,现在代码显示出的还是竖屏拍摄结果,设置camera.setDisplayOrientation(90)现实的虽然是横屏,但明显是把竖屏给纵向压缩了,比例都变了。

android 横屏录制视频,MediaRecorder怎么在竖屏的时候录像结果是横屏录的结果相关推荐

  1. 抖音视频模板 创意手机竖屏宣传视频促销PR抖音素材 PR模板网

    抖音视频模板 创意手机竖屏宣传视频促销PR抖音素材 Premiere模板素材网 分享您的想法,传播信息,与受众交流,销售产品的最具创意的方式. 高度可定制性使可以根据需要更改模板:更改文本,大小,照片 ...

  2. android 横屏录制视频,安卓手机如何录制屏幕视频?一招结束录屏的烦恼

    随着手机功能的越来越强大,大大小小的事情都可以在手机上完成,导致我们的生活的吃喝玩乐都用到手机,那么我们有时会在手机上刷到一些好玩的视频,想把它保存下载,但由于无法下载,所以我们就想了各种办法,最后采 ...

  3. android横向纵向切换,【报Bug】安卓竖屏切换到横屏后,再切换回竖屏,不能正常还原...

    详细问题描述 [内容] 我们做了一个手机签名的功能,签名的时候是横屏的,签完后返回前一页重新还原成竖屏,但是在有的安卓机型上不能正常还原. 重现步骤 [步骤] 1.进入页面横屏,做签名操作, 2.关闭 ...

  4. android 边录制视频边写软字幕

    目前,对于边录制视频,边要显示时间戳的需求,都是通过用对应字符的bitmap图片的yuv数据,来替换每一帧yuv数据的像素点来实现的.这样做的坏处显而易见,这个时间戳数据,是硬生生的印在每一帧数据上的 ...

  5. android 录像 视频大小,Android相机 – 录制视频时预览放大

    我一直试图弄清楚一段时间,但由于某种原因,当我开始使用相机录制视频时,预览放大.我从以下示例中获取以下代码: @Override public void surfaceChanged(SurfaceH ...

  6. android 小米录制视频,小米手机如何录屏 小米手机录屏方法【教程】

    相信很多人喜欢用小米,一个很大的原因便是功能丰富多样的MIUI.而本周,MIUI又更新了一个很多人非常期待的功能:录屏.目前支持的机型有小米3/4/5以及小米note,后续会继续完善. 对于这样一个贴 ...

  7. AVCaptureMovieFileOutput 视频方向(锁定竖屏or不锁定都可以)

    2019独角兽企业重金招聘Python工程师标准>>> 最近又在弄短视频录制,解决一个问题又来一个问题.还好百度跟谷歌都是那么滴强大,基本上都能解决我遇到的问题.不过别人的答案不一定 ...

  8. html背景视频模糊效果,怎么给竖屏视频添加模糊背景效果?

    原标题:怎么给竖屏视频添加模糊背景效果? 下面是具体的步骤(本篇教程仅使用一个素材): 1.首先需要下载一个竖屏的视频或图片素材,双击打开视频剪辑软件,在左上角的"项目媒体"中,点 ...

  9. css多媒体竖屏,css3 媒体查询方向:横屏竖屏教程

    大家好,今天给大家分享的是css3 媒体查询方向:横屏竖屏教程,希望大家喜欢. 说道媒体查询,很多人会感觉陌生,但是对于做响应式开发的同学来说,那是再熟悉不过了. 结合CSS媒体查询,可以创建适应不同 ...

最新文章

  1. [Step By Step]使用SLT工具从SAP导入数据到SAP HANA
  2. Cocos2d-js学习--helloword
  3. 「C++」C++ Primer Plus 笔记:第二章 开始学习C++
  4. Android延时执行调用的几种方法
  5. 局域网内连接MySQL
  6. 导出为Excel例子 java
  7. Web 开发必须掌握的三个技术:Token、Cookie、Session
  8. JavaScript 之 JS重载
  9. 自适应采样次数的Ransac算法
  10. [剑指offer] 7. 斐波那契数列 (递归 时间复杂度)
  11. 中国工程院院士郑纬民:应鼓励从头研发先进的存储系统软件
  12. 决策树人工智能预测模型_部署和服务AI模型进行预测的10种方法
  13. Mac 上的 MySQL 管理工具 -- Sequel Pro
  14. android 动态壁纸 例子,android 动态壁纸实例(1)【转】
  15. python交集和补集的符号_python数组并集交集补集
  16. 计算机二级 MS office(Excel)常用函数
  17. lio linux工具,ISCSI (简体中文)/LIO (简体中文)
  18. 【《关于我一个小学生用C++写了个抽奖游戏这件事》】
  19. Python爬虫笔记————抓取 猫眼电影排行榜Top100
  20. 某高人整理的Java就业面试题大全【1】

热门文章

  1. 关于idea无法使用搜狗输入法打出汉字的解决方案(转)
  2. 尤雨溪 6 月 4 日的 Vue 技术分享
  3. 深圳mba学费一览表
  4. 路由器设置多WAN口要点技巧
  5. 普物期末题型总结题解
  6. 【设计模式系列】--单例模式
  7. 图像分割之分水岭分割算法
  8. 4ARM-PEG-OH 四臂PEG羟基
  9. 【BUUCTF】[Zer0pts2020]Can you guess it?
  10. 计算机网络技术中的单位换算,计算机存储/网络传输中单位换算1000还是1024