LxzBUG / ScreenShare

一行代码实现Android屏幕采集并编码H264
Apache License 2.0
80 stars 13 forks source link

1600

🌴一行代码实现安卓屏幕采集编码

特点

安装

在项目根目录的 build.gradle 添加仓库

allprojects {
    repositories {
        // ...
        maven { url 'https://jitpack.io' }
    }
}

在 module 的 build.gradle 添加依赖

dependencies {
    implementation 'com.github.LxzBUG:ScreenShare:1.1.6'
}

使用

//获取H264数据
ScreenShareKit.init(this).config(screenDataType = EncodeBuilder.SCREEN_DATA_TYPE.H264).onH264(object :H264CallBack{
            override fun onH264(
                buffer: ByteBuffer,
                isKeyFrame: Boolean,
                width: Int,
                height: Int,
                ts: Long
            ) {
              //编码后的的数据
            }
        }).onStart({
            //用户同意采集,开始采集数据
        }).start()

//获取RGBA数据
ScreenShareKit.init(this).config(screenDataType = EncodeBuilder.SCREEN_DATA_TYPE.RGBA).onRGBA(object :RGBACallBack{
            override fun onRGBA(
                rgba: ByteArray,
                width: Int,
                height: Int,
                stride: Int,
                rotation: Int,
                rotationChanged: Boolean
            ) {
                //屏幕截图数据
            }

        }).onStart({
            //用户同意采集,开始采集数据
        }).start()

//开启音频捕获
ScreenShareKit.init(this).config(screenDataType = EncodeBuilder.SCREEN_DATA_TYPE.RGBA,audioCapture = true).onRGBA(object :RGBACallBack{
            override fun onRGBA(
                rgba: ByteArray,
                width: Int,
                height: Int,
                stride: Int,
                rotation: Int,
                rotationChanged: Boolean
            ) {
                //屏幕截图数据
            }

        }).onAudio(object :AudioCallBack{
            override fun onAudio(buffer: ByteArray?, ts: Long) {
                //音频数据
            }

        }).onStart({
            //用户同意采集,开始采集数据
        }).start()

//静音
ScreenShareKit.setMicrophoneMute(true)

//停止采集
ScreenShareKit.stop()

License

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.