zoukankan      html  css  js  c++  java
  • Android 音视频深入 八 小视频录制(附源码下载)

    本篇项目地址,求start
    https://github.com/979451341/Audio-and-video-learning-materials/tree/master/%E5%B0%8F%E8%A7%86%E9%A2%91%E5%BD%95%E5%88%B6

    这个项目我觉得厉害,因为之前录屏用了很多代码,而这个真正实现录屏功能的代码一百行都不到

    还有就是关于整个界面UI也做得不错,但是关于界面如何实现的我就不多说了,直接说如何实现录屏的代码

    首先Camera如何给数据SurfaceView,从而在屏幕显示Camera拍到的东西,这个之前说多了,不在提了

    1.录屏

    这一次将视频数据如何将数据给MediaRecorder,两行就可以了
                mMediaRecorder.setCamera(mCamera);
                mMediaRecorder.setPreviewDisplay(mSurfaceHolder.getSurface());

    设置音视频两个数据来源的格式
                mMediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);
                mMediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);


    设置分辨率,显示屏幕的大小
                //设置视频的分辨率
                mMediaRecorder.setVideoSize(mProfile.videoFrameWidth, mProfile.videoFrameHeight);

    设置编码的速率
                mMediaRecorder.setAudioEncodingBitRate(44100);
                if (mProfile.videoBitRate > 2 * 1024 * 1024) {
                    mMediaRecorder.setVideoEncodingBitRate(2 * 1024 * 1024);
                } else {
                    mMediaRecorder.setVideoEncodingBitRate(mProfile.videoBitRate);
                }

    设置视频播放的帧率
    mMediaRecorder.setVideoFrameRate(mProfile.videoFrameRate);

    这是音视频编码的格式
                mMediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);
                mMediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264);

    设置输出文件的路径
    mMediaRecorder.setOutputFile(mRecordFile.getAbsolutePath());



    这项目要说缺陷就是无法在录屏的时候加特效,但是代码短,适合一些专门的用途

  • 相关阅读:
    VTK二维图像的三维显示
    VtkTransform 和 SetPosition的区别
    Qt QList 遍历元素
    Qt QList详解
    QT QList介绍及应用
    Qt 生成随机区间浮点数 generateRand
    Qt qsrand qrand 产生随机数的两只方法
    Qt QStringLiteral
    Qt QMap简单用法
    Qt 遍历QMap
  • 原文地址:https://www.cnblogs.com/jianpanwuzhe/p/8421228.html
Copyright © 2011-2022 走看看