来疯直播安卓控件,支持flv,支持rtmp,支持添加视频特效

描述:

来疯直播安卓控件,支持flv,支持rtmp,支持添加视频特效

  • 硬编码
  • 弱网络环境处理
  • 动态码率调整
  • 摄像头参数设置
  • 音频参数设置
  • 视频参数设置
  • 支持不同窗口尺寸
  • 支持基于Gpu的视频特处理
  • 支持静音
  • 支持rtmp上传
  • 支持水印
  • 支持截屏录制
  • 支持摄像头切换
  • 支持flv封包
  • 支持摄像头自动对焦和手动对焦切换
  • 支持摄像头缩放
  • 支持闪光灯操作
  • 支持音频回声消除

应用截图:

172922hhozt1gby9hn1z21

代码介绍:

在使用前需要添加相应的权限:

<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.FLASHLIGHT" />
<uses-permission android:name="android.permission.CAMERA" />

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.RECORD_AUDIO"/>
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />

<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.INTERNET" />

<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.autofocus" />

注意: 在Android 6.0以后很多权限需要动态申请. 如果你想快速使用,可以将项目的targetSdkVersion设置在23一下。

预览窗口大小

CameraLivingView支持View固定大小(EXACTLY)的模式,当然也可以在xml中定义窗口的长宽比, 这样的话一个参数要设为固定大小,另外一个参数设为”wrap_content”。 参考代码如下:

<com.laifeng.sopcastsdk.ui.CameraLivingView
    android:id="@+id/liveView"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    app:aspect_ratio="0.8"/>

音频参数设置

AudioConfiguration.Builder audioBuilder = new AudioConfiguration.Builder();
audioBuilder.setAec(true).setBps(32, 64).setFrequency(16000).setMime(DEFAULT_MIME).
        setAacProfile(DEFAULT_AAC_PROFILE).setAdts(DEFAULT_ADTS).
        setChannelCount(1).setEncoding(DEFAULT_AUDIO_ENCODING);
AudioConfiguration audioConfiguration = audioBuilder.build();
mLFLiveView.setAudioConfiguration(audioConfiguration);

通过’setAec(true)’方法可以打开回声消除功能,回声消除功能仅仅在(8000, 16000)采样率并且单声道下支持。 mime参数将会设置到硬编编码器,请使用正确的mime参数。如果使用默认参数,则不需要进行任何设置。

视频参数设置

VideoConfiguration.Builder videoBuilder = new VideoConfiguration.Builder();
videoBuilder.setSize(640, 360).setMime(DEFAULT_MIME)
        .setFps(15).setBps(300, 800).setIfi(2);
mVideoConfiguration = videoBuilder.build();
mLFLiveView.setVideoConfiguration(mVideoConfiguration);

在直播之前可以进行视频参数设置,可以通过setSize()方法来设置视频输出的尺寸大小,如果设置的尺寸比例不符合预览尺寸比例,则会选择中间区域进行缩放输出。 在直播之前可以设置视频的最大和最小码率,直播的时候先使用最大码率,后来根据网络环境进行调整,但是码率始终在最大和最小码率之间。mime参数将会设置到硬编 编码器,请确保mime的正确性,ifi参数也会传递到硬编编码器。如果你使用默认参数,则不需要进行任何设置。

视频特效

我们提供了无特效和灰色两种特效,你也可以定义符合自己风格的视频特效。

mLFLiveView.setEffect(mGrayEffect);

水印

在这往视频上添加水印也非常方便,设置水印后预览和输出都会显示相应尺寸的水印。设置水印的大小和位置是居于输出视频的, 预览界面会根据输出视频的情况等比例显示水印。请设置视频水印的长宽比和水印图片的长宽比一致。

Bitmap watermarkImg = BitmapFactory.decodeResource(getResources(), R.mipmap.watermark);
Watermark watermark = new Watermark(watermarkImg, 50, 25, WatermarkPosition.WATERMARK_ORIENTATION_BOTTOM_RIGHT, 8, 8);
mLFLiveView.setWatermark(watermark);

源码下载:https://github.com/LaiFeng-Android/SopCastComponent

未经允许不得转载:安度博客 » 来疯直播安卓控件,支持flv,支持rtmp,支持添加视频特效

赞 (0)
分享到:更多 ()

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址