元宇宙| 用虚拟人进行抖音/快手直播

在上一篇文章零基础开启元宇宙——创建虚拟形象中,我们实现了创建虚拟形象,接下来我们可以利用虚拟形象“为所欲为”。今天我们利用虚拟形象在短视频平台如快手、抖音中直播,对于不希望露脸的主播们这是可是一大利器呀!话不多说,上绝活。

请添加图片描述在这里插入图片描述

1 实现思路

通过即构免费提供的虚拟形象和实时RTC技术,结合抖音快手官方提供的直播伴侣,可以轻松实现虚拟形象在抖音快手平台直播,整个实现流程如下:

在这里插入图片描述

2 Android接入RTC推送实时预览画面

2.1 接入RTC SDK

前往https://doc-zh.zego.im/article/2969下载即构RTC SDK。将压缩包内容拷贝到app/libs中,并修改app/build.gradle添加如下内容:

// ...
// 其他略
// ...

android {
    // ...
    // 其他略
    // ...
    defaultConfig { 
            
        // ...
        // 其他略
        // ...

        ndk {
            abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64'
        }
    }
    sourceSets {
        main {
            jniLibs.srcDirs = ['libs']

        }
    } 
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar', "*.aar"]) //通配引入

    // ...
    // 其他略
    // ...
}


app/src/main/AndroidManifest.xml文件中添加必要的权限信息:


<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

<uses-feature
    android:glEsVersion="0x00020000"
    android:required="true" />
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />

2.1 虚拟形象实时推流

使用即构RTC SDK实现实时视频通话过程如下图:

在这里插入图片描述

根据我们目前的需求,只需实现在Android端推流,windows端拉流即可。因此我们接下来只介绍如何在android端推流,如果想实现更丰富的定制能力,参考官网https://doc-zh.zego.im/article/195即可。

出于篇幅考虑,我们这里只展示关键代码:

private ZegoExpressEngine createRTCEngine(Application app, IZegoEventHandler handler) {
    
    ZegoEngineProfile profile = new ZegoEngineProfile();
    profile.appID = KeyCenter.APP_ID;
    profile.scenario = ZegoScenario.GENERAL;  // 通用场景接入
    profile.application = app;
    ZegoExpressEngine engine = ZegoExpressEngine.createEngine(profile, handler); 
    return engine;
}

public void start(String userId, String userName, String roomId, RTCListener listener) {
   
    Log.e(TAG, "准备登陆房间");
    loginRoom(userId, userName, roomId, listener);
}

public void stop() {
   
    loginOut();
}

public void setCustomVideo(int videoWidth, int videoHeight, RTCMngr.CaptureListener listener) {
   

    // 自定义视频采集
    ZegoCustomVideoCaptureConfig videoCaptureConfig = new ZegoCustomVideoCaptureConfig();
    // 选择 GL_TEXTURE_2D 类型视频帧数据
    videoCaptureConfig.bufferType = ZegoVideoBufferType.GL_TEXTURE_2D;
    // 启动自定义视频采集
    mRTCEngine.enableCustomVideoCapture(true, videoCaptureConfig, ZegoPublishChannel.MAIN);

    // 设置自定义视频采集回调
    mRTCEngine.setCustomVideoCaptureHandler(new IZegoCustomVideoCaptureHandler() {
   
        @Override
        public void onStart
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值