├── MLVB-API-Example ├── App │ ├── .gitignore │ ├── src │ │ └── main │ │ │ ├── res │ │ │ ├── drawable │ │ │ │ ├── ic_launcher.png │ │ │ │ └── button_bg.xml │ │ │ ├── mipmap-hdpi │ │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-mdpi │ │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-xhdpi │ │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-xxhdpi │ │ │ │ ├── ic_appicon.png │ │ │ │ ├── ic_launcher.png │ │ │ │ └── ic_launch_image.png │ │ │ ├── mipmap-xxxhdpi │ │ │ │ └── ic_launcher.png │ │ │ ├── values │ │ │ │ ├── styles.xml │ │ │ │ ├── colors.xml │ │ │ │ └── strings.xml │ │ │ └── values-en │ │ │ │ └── strings.xml │ │ │ ├── java │ │ │ └── com │ │ │ │ └── tencent │ │ │ │ └── mlvb │ │ │ │ └── apiexample │ │ │ │ └── MLVBApplication.java │ │ │ └── AndroidManifest.xml │ ├── proguard-rules.pro │ └── build.gradle ├── Common │ ├── .gitignore │ ├── src │ │ └── main │ │ │ ├── AndroidManifest.xml │ │ │ ├── res │ │ │ ├── drawable │ │ │ │ ├── common_arrow_above.png │ │ │ │ ├── common_ic_select_off.png │ │ │ │ ├── common_ic_select_on.png │ │ │ │ ├── common_seekbar_thumb.xml │ │ │ │ ├── common_selector_radio_bg.xml │ │ │ │ ├── common_button_bg.xml │ │ │ │ ├── common_button_grey_bg.xml │ │ │ │ ├── common_rb_icon_selector.xml │ │ │ │ ├── common_edit_bg.xml │ │ │ │ └── common_seekbar_style.xml │ │ │ ├── mipmap-xxhdpi │ │ │ │ ├── common_ic_back.png │ │ │ │ └── common_user_portrait.png │ │ │ ├── values │ │ │ │ ├── strings.xml │ │ │ │ └── colors.xml │ │ │ └── values-en │ │ │ │ └── strings.xml │ │ │ └── java │ │ │ └── com │ │ │ └── tencent │ │ │ └── mlvb │ │ │ └── common │ │ │ ├── URLUtils.java │ │ │ └── FlowRadioGroup.java │ ├── proguard-rules.pro │ └── build.gradle ├── Basic │ ├── LebPlay │ │ ├── .gitignore │ │ ├── src │ │ │ └── main │ │ │ │ ├── res │ │ │ │ ├── values │ │ │ │ │ ├── colors.xml │ │ │ │ │ ├── strings.xml │ │ │ │ │ └── styles.xml │ │ │ │ ├── values-en │ │ │ │ │ └── strings.xml │ │ │ │ └── layout │ │ │ │ │ ├── lebplay_activity_leb_play.xml │ │ │ │ │ └── lebplay_activity_leb_play_enter.xml │ │ │ │ ├── AndroidManifest.xml │ │ │ │ └── java │ │ │ │ └── com │ │ │ │ └── tencent │ │ │ │ └── liteav │ │ │ │ └── sdk │ │ │ │ └── lebplay │ │ │ │ └── LebPlayEnterActivity.java │ │ ├── proguard-rules.pro │ │ └── build.gradle │ ├── LiveLink │ │ ├── .gitignore │ │ ├── src │ │ │ └── main │ │ │ │ ├── res │ │ │ │ ├── drawable │ │ │ │ │ ├── livelink_start_link.png │ │ │ │ │ ├── livelink_stop_link.png │ │ │ │ │ └── livelink_selector_role_btn_bg.xml │ │ │ │ ├── values │ │ │ │ │ ├── colors.xml │ │ │ │ │ ├── styles.xml │ │ │ │ │ └── strings.xml │ │ │ │ ├── values-en │ │ │ │ │ └── strings.xml │ │ │ │ └── layout │ │ │ │ │ ├── livelink_activity_live_link_audience.xml │ │ │ │ │ └── livelink_activity_live_link_anchor.xml │ │ │ │ └── AndroidManifest.xml │ │ ├── proguard-rules.pro │ │ └── build.gradle │ ├── LivePK │ │ ├── .gitignore │ │ ├── src │ │ │ └── main │ │ │ │ ├── res │ │ │ │ ├── drawable │ │ │ │ │ ├── livepk_stop_link.png │ │ │ │ │ ├── livepk_start_link.png │ │ │ │ │ └── livepk_selector_role_btn_bg.xml │ │ │ │ ├── values │ │ │ │ │ ├── colors.xml │ │ │ │ │ ├── styles.xml │ │ │ │ │ └── strings.xml │ │ │ │ ├── layout │ │ │ │ │ ├── livepk_activity_live_pk_audience.xml │ │ │ │ │ └── livepk_activity_live_pk_anchor.xml │ │ │ │ └── values-en │ │ │ │ │ └── strings.xml │ │ │ │ └── AndroidManifest.xml │ │ ├── proguard-rules.pro │ │ └── build.gradle │ ├── LivePlay │ │ ├── .gitignore │ │ ├── src │ │ │ └── main │ │ │ │ ├── res │ │ │ │ ├── values │ │ │ │ │ ├── colors.xml │ │ │ │ │ ├── strings.xml │ │ │ │ │ └── styles.xml │ │ │ │ ├── values-en │ │ │ │ │ └── strings.xml │ │ │ │ └── layout │ │ │ │ │ └── liveplay_activity_live_play.xml │ │ │ │ ├── AndroidManifest.xml │ │ │ │ └── java │ │ │ │ └── com │ │ │ │ └── tencent │ │ │ │ └── mlvb │ │ │ │ └── liveplay │ │ │ │ └── LivePlayEnterActivity.java │ │ ├── proguard-rules.pro │ │ └── build.gradle │ ├── LivePushCamera │ │ ├── .gitignore │ │ ├── src │ │ │ └── main │ │ │ │ ├── res │ │ │ │ ├── mipmap-xxhdpi │ │ │ │ │ ├── app_ic_plus.png │ │ │ │ │ ├── app_ic_close.png │ │ │ │ │ ├── app_ic_ic_back.png │ │ │ │ │ ├── app_ic_bottom_mic_off.png │ │ │ │ │ ├── app_ic_bottom_mic_on.png │ │ │ │ │ ├── app_ic_remote_video_off.png │ │ │ │ │ ├── app_ic_remote_video_on.png │ │ │ │ │ ├── app_ic_bottom_camera_back.png │ │ │ │ │ └── app_ic_bottom_camera_front.png │ │ │ │ ├── values │ │ │ │ │ ├── colors.xml │ │ │ │ │ ├── styles.xml │ │ │ │ │ └── strings.xml │ │ │ │ ├── drawable │ │ │ │ │ └── livepusher_content_bg.xml │ │ │ │ ├── menu │ │ │ │ │ ├── livepushcamera_rotate.xml │ │ │ │ │ ├── livepushcamera_mirror.xml │ │ │ │ │ └── livepushcamera_resolution.xml │ │ │ │ └── values-en │ │ │ │ │ └── strings.xml │ │ │ │ └── AndroidManifest.xml │ │ ├── proguard-rules.pro │ │ └── build.gradle │ └── LivePushScreen │ │ ├── .gitignore │ │ ├── src │ │ └── main │ │ │ ├── res │ │ │ ├── drawable │ │ │ │ └── livepusher_content_bg.xml │ │ │ ├── values │ │ │ │ ├── strings.xml │ │ │ │ └── styles.xml │ │ │ ├── values-en │ │ │ │ └── strings.xml │ │ │ └── layout │ │ │ │ └── livepushscreen_activity_push_screen.xml │ │ │ └── AndroidManifest.xml │ │ ├── proguard-rules.pro │ │ └── build.gradle ├── Advanced │ ├── TimeShift │ │ ├── .gitignore │ │ ├── consumer-rules.pro │ │ ├── src │ │ │ └── main │ │ │ │ ├── res │ │ │ │ ├── values │ │ │ │ │ ├── colors.xml │ │ │ │ │ ├── strings.xml │ │ │ │ │ └── styles.xml │ │ │ │ ├── values-en │ │ │ │ │ └── strings.xml │ │ │ │ └── layout │ │ │ │ │ └── activity_time_shift.xml │ │ │ │ └── AndroidManifest.xml │ │ ├── proguard-rules.pro │ │ └── build.gradle │ ├── HlsAutoBitrate │ │ ├── .gitignore │ │ ├── src │ │ │ └── main │ │ │ │ ├── res │ │ │ │ ├── values │ │ │ │ │ ├── colors.xml │ │ │ │ │ ├── strings.xml │ │ │ │ │ └── styles.xml │ │ │ │ ├── values-en │ │ │ │ │ └── strings.xml │ │ │ │ └── layout │ │ │ │ │ └── hlsautobitrate_activity_hls_auto_bitrate.xml │ │ │ │ └── AndroidManifest.xml │ │ ├── proguard-rules.pro │ │ └── build.gradle │ ├── LebAutoBitrate │ │ ├── .gitignore │ │ ├── src │ │ │ └── main │ │ │ │ ├── res │ │ │ │ ├── values │ │ │ │ │ ├── colors.xml │ │ │ │ │ ├── strings.xml │ │ │ │ │ └── styles.xml │ │ │ │ ├── values-en │ │ │ │ │ └── strings.xml │ │ │ │ └── layout │ │ │ │ │ └── lebautobitrate_activity_leb_auto_bitrate.xml │ │ │ │ └── AndroidManifest.xml │ │ ├── proguard-rules.pro │ │ └── build.gradle │ ├── RTCPushAndPlay │ │ ├── .gitignore │ │ ├── proguard-rules.pro │ │ ├── build.gradle │ │ └── src │ │ │ └── main │ │ │ ├── res │ │ │ ├── values │ │ │ │ ├── styles.xml │ │ │ │ └── strings.xml │ │ │ ├── values-en │ │ │ │ └── strings.xml │ │ │ └── layout │ │ │ │ ├── rtcpushandplay_activity_rtc_push_and_play_audience.xml │ │ │ │ └── rtcpushandplay_activity_rtc_push_and_play_anchor.xml │ │ │ ├── AndroidManifest.xml │ │ │ └── java │ │ │ └── com │ │ │ └── tencent │ │ │ └── mlvb │ │ │ └── rtcpushandplay │ │ │ └── RTCPushAndPlayEnterActivity.java │ ├── ThirdBeauty │ │ ├── .gitignore │ │ ├── src │ │ │ └── main │ │ │ │ ├── res │ │ │ │ ├── values │ │ │ │ │ ├── colors.xml │ │ │ │ │ ├── strings.xml │ │ │ │ │ └── styles.xml │ │ │ │ ├── drawable │ │ │ │ │ └── button_bg.xml │ │ │ │ ├── values-en │ │ │ │ │ └── strings.xml │ │ │ │ └── layout │ │ │ │ │ └── activity_third_beauty_entrance.xml │ │ │ │ ├── AndroidManifest.xml │ │ │ │ └── java │ │ │ │ └── com │ │ │ │ └── tencent │ │ │ │ └── mlvb │ │ │ │ └── thirdbeauty │ │ │ │ └── ThirdBeautyEntranceActivity.java │ │ ├── proguard-rules.pro │ │ └── build.gradle │ ├── CustomVideoCapture │ │ ├── .gitignore │ │ ├── src │ │ │ └── main │ │ │ │ ├── res │ │ │ │ ├── values │ │ │ │ │ ├── strings.xml │ │ │ │ │ └── styles.xml │ │ │ │ ├── values-en │ │ │ │ │ └── strings.xml │ │ │ │ └── layout │ │ │ │ │ └── customvideocaptureactivity_activity_custom_video_capture.xml │ │ │ │ ├── java │ │ │ │ └── com │ │ │ │ │ └── tencent │ │ │ │ │ └── mlvb │ │ │ │ │ └── customvideocapture │ │ │ │ │ └── helper │ │ │ │ │ ├── basic │ │ │ │ │ ├── TextureFrame.java │ │ │ │ │ ├── Size.java │ │ │ │ │ ├── Frame.java │ │ │ │ │ └── FrameBuffer.java │ │ │ │ │ └── render │ │ │ │ │ ├── EGLHelper.java │ │ │ │ │ ├── opengl │ │ │ │ │ ├── Rotation.java │ │ │ │ │ ├── OesInputFilter.java │ │ │ │ │ ├── TextureRotationUtils.java │ │ │ │ │ └── Program.java │ │ │ │ │ └── EglCore.java │ │ │ │ └── AndroidManifest.xml │ │ ├── proguard-rules.pro │ │ └── build.gradle │ ├── NewTimeShiftSprite │ │ ├── .gitignore │ │ ├── consumer-rules.pro │ │ ├── src │ │ │ └── main │ │ │ │ ├── res │ │ │ │ ├── values │ │ │ │ │ ├── colors.xml │ │ │ │ │ ├── strings.xml │ │ │ │ │ └── styles.xml │ │ │ │ └── values-en │ │ │ │ │ └── strings.xml │ │ │ │ └── AndroidManifest.xml │ │ ├── proguard-rules.pro │ │ └── build.gradle │ ├── PictureInPicture │ │ ├── .gitignore │ │ ├── src │ │ │ └── main │ │ │ │ ├── res │ │ │ │ ├── values │ │ │ │ │ ├── color.xml.xml │ │ │ │ │ ├── styles.xml │ │ │ │ │ └── strings.xml │ │ │ │ ├── values-en │ │ │ │ │ └── strings.xml │ │ │ │ └── layout │ │ │ │ │ └── activity_picture_in_picture.xml │ │ │ │ └── AndroidManifest.xml │ │ ├── proguard-rules.pro │ │ └── build.gradle │ └── SwitchRenderView │ │ ├── .gitignore │ │ ├── src │ │ └── main │ │ │ ├── res │ │ │ ├── values │ │ │ │ ├── colors.xml │ │ │ │ ├── strings.xml │ │ │ │ └── styles.xml │ │ │ └── values-en │ │ │ │ └── strings.xml │ │ │ └── AndroidManifest.xml │ │ ├── proguard-rules.pro │ │ └── build.gradle ├── .gitignore ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties ├── Debug │ ├── src │ │ └── main │ │ │ └── AndroidManifest.xml │ ├── build.gradle │ └── proguard-rules.pro ├── settings.gradle ├── build.gradle ├── gradle.properties └── gradlew.bat ├── SDK ├── README-zh_CN.md └── README.md └── README.md /MLVB-API-Example/App/.gitignore: -------------------------------------------------------------------------------- 1 | /build 2 | -------------------------------------------------------------------------------- /MLVB-API-Example/Common/.gitignore: -------------------------------------------------------------------------------- 1 | /build -------------------------------------------------------------------------------- /MLVB-API-Example/Basic/LebPlay/.gitignore: -------------------------------------------------------------------------------- 1 | /build -------------------------------------------------------------------------------- /MLVB-API-Example/Basic/LiveLink/.gitignore: -------------------------------------------------------------------------------- 1 | /build -------------------------------------------------------------------------------- /MLVB-API-Example/Basic/LivePK/.gitignore: -------------------------------------------------------------------------------- 1 | /build -------------------------------------------------------------------------------- /MLVB-API-Example/Basic/LivePlay/.gitignore: -------------------------------------------------------------------------------- 1 | /build -------------------------------------------------------------------------------- /MLVB-API-Example/Advanced/TimeShift/.gitignore: -------------------------------------------------------------------------------- 1 | /build -------------------------------------------------------------------------------- /MLVB-API-Example/Advanced/HlsAutoBitrate/.gitignore: -------------------------------------------------------------------------------- 1 | /build -------------------------------------------------------------------------------- /MLVB-API-Example/Advanced/LebAutoBitrate/.gitignore: -------------------------------------------------------------------------------- 1 | /build -------------------------------------------------------------------------------- /MLVB-API-Example/Advanced/RTCPushAndPlay/.gitignore: -------------------------------------------------------------------------------- 1 | /build -------------------------------------------------------------------------------- /MLVB-API-Example/Advanced/ThirdBeauty/.gitignore: -------------------------------------------------------------------------------- 1 | /build -------------------------------------------------------------------------------- /MLVB-API-Example/Advanced/TimeShift/consumer-rules.pro: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /MLVB-API-Example/Basic/LivePushCamera/.gitignore: -------------------------------------------------------------------------------- 1 | /build -------------------------------------------------------------------------------- /MLVB-API-Example/Basic/LivePushScreen/.gitignore: -------------------------------------------------------------------------------- 1 | /build -------------------------------------------------------------------------------- /MLVB-API-Example/Advanced/CustomVideoCapture/.gitignore: -------------------------------------------------------------------------------- 1 | /build -------------------------------------------------------------------------------- /MLVB-API-Example/Advanced/NewTimeShiftSprite/.gitignore: -------------------------------------------------------------------------------- 1 | /build -------------------------------------------------------------------------------- /MLVB-API-Example/Advanced/NewTimeShiftSprite/consumer-rules.pro: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /MLVB-API-Example/Advanced/PictureInPicture/.gitignore: -------------------------------------------------------------------------------- 1 | /build -------------------------------------------------------------------------------- /MLVB-API-Example/Advanced/SwitchRenderView/.gitignore: -------------------------------------------------------------------------------- 1 | /build -------------------------------------------------------------------------------- /MLVB-API-Example/.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | *.gradle/ 3 | /local.properties 4 | *.idea/ 5 | .DS_Store 6 | /build 7 | /build.yml -------------------------------------------------------------------------------- /MLVB-API-Example/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiteAVSDK/Live_Android/HEAD/MLVB-API-Example/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /MLVB-API-Example/Common/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /MLVB-API-Example/Debug/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /MLVB-API-Example/App/src/main/res/drawable/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiteAVSDK/Live_Android/HEAD/MLVB-API-Example/App/src/main/res/drawable/ic_launcher.png -------------------------------------------------------------------------------- /MLVB-API-Example/App/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiteAVSDK/Live_Android/HEAD/MLVB-API-Example/App/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /MLVB-API-Example/App/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiteAVSDK/Live_Android/HEAD/MLVB-API-Example/App/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /MLVB-API-Example/App/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiteAVSDK/Live_Android/HEAD/MLVB-API-Example/App/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /MLVB-API-Example/App/src/main/res/mipmap-xxhdpi/ic_appicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiteAVSDK/Live_Android/HEAD/MLVB-API-Example/App/src/main/res/mipmap-xxhdpi/ic_appicon.png -------------------------------------------------------------------------------- /MLVB-API-Example/App/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiteAVSDK/Live_Android/HEAD/MLVB-API-Example/App/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /MLVB-API-Example/App/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiteAVSDK/Live_Android/HEAD/MLVB-API-Example/App/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /MLVB-API-Example/App/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /MLVB-API-Example/App/src/main/res/mipmap-xxhdpi/ic_launch_image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiteAVSDK/Live_Android/HEAD/MLVB-API-Example/App/src/main/res/mipmap-xxhdpi/ic_launch_image.png -------------------------------------------------------------------------------- /MLVB-API-Example/Common/src/main/res/drawable/common_arrow_above.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiteAVSDK/Live_Android/HEAD/MLVB-API-Example/Common/src/main/res/drawable/common_arrow_above.png -------------------------------------------------------------------------------- /MLVB-API-Example/Common/src/main/res/drawable/common_ic_select_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiteAVSDK/Live_Android/HEAD/MLVB-API-Example/Common/src/main/res/drawable/common_ic_select_off.png -------------------------------------------------------------------------------- /MLVB-API-Example/Common/src/main/res/drawable/common_ic_select_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiteAVSDK/Live_Android/HEAD/MLVB-API-Example/Common/src/main/res/drawable/common_ic_select_on.png -------------------------------------------------------------------------------- /MLVB-API-Example/Common/src/main/res/mipmap-xxhdpi/common_ic_back.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiteAVSDK/Live_Android/HEAD/MLVB-API-Example/Common/src/main/res/mipmap-xxhdpi/common_ic_back.png -------------------------------------------------------------------------------- /MLVB-API-Example/Basic/LivePK/src/main/res/drawable/livepk_stop_link.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiteAVSDK/Live_Android/HEAD/MLVB-API-Example/Basic/LivePK/src/main/res/drawable/livepk_stop_link.png -------------------------------------------------------------------------------- /MLVB-API-Example/Basic/LivePK/src/main/res/drawable/livepk_start_link.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiteAVSDK/Live_Android/HEAD/MLVB-API-Example/Basic/LivePK/src/main/res/drawable/livepk_start_link.png -------------------------------------------------------------------------------- /MLVB-API-Example/Common/src/main/res/mipmap-xxhdpi/common_user_portrait.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiteAVSDK/Live_Android/HEAD/MLVB-API-Example/Common/src/main/res/mipmap-xxhdpi/common_user_portrait.png -------------------------------------------------------------------------------- /MLVB-API-Example/Basic/LiveLink/src/main/res/drawable/livelink_start_link.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiteAVSDK/Live_Android/HEAD/MLVB-API-Example/Basic/LiveLink/src/main/res/drawable/livelink_start_link.png -------------------------------------------------------------------------------- /MLVB-API-Example/Basic/LiveLink/src/main/res/drawable/livelink_stop_link.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiteAVSDK/Live_Android/HEAD/MLVB-API-Example/Basic/LiveLink/src/main/res/drawable/livelink_stop_link.png -------------------------------------------------------------------------------- /SDK/README-zh_CN.md: -------------------------------------------------------------------------------- 1 | # MLVB SDK (Android) 2 | 3 | _[English](README.md) | 简体中文_ 4 | ## 下载地址 5 | 6 | [下载 Android MLVB SDK](https://liteav.sdk.qcloud.com/download/latest/TXLiteAVSDK_Smart_Android_latest.zip) 7 | -------------------------------------------------------------------------------- /MLVB-API-Example/Basic/LivePushCamera/src/main/res/mipmap-xxhdpi/app_ic_plus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiteAVSDK/Live_Android/HEAD/MLVB-API-Example/Basic/LivePushCamera/src/main/res/mipmap-xxhdpi/app_ic_plus.png -------------------------------------------------------------------------------- /MLVB-API-Example/Common/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 用户没有允许需要的权限,加入通话失败 4 | -------------------------------------------------------------------------------- /MLVB-API-Example/Basic/LivePushCamera/src/main/res/mipmap-xxhdpi/app_ic_close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiteAVSDK/Live_Android/HEAD/MLVB-API-Example/Basic/LivePushCamera/src/main/res/mipmap-xxhdpi/app_ic_close.png -------------------------------------------------------------------------------- /MLVB-API-Example/Basic/LebPlay/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #FFFFFF 4 | #000000 5 | 6 | -------------------------------------------------------------------------------- /MLVB-API-Example/Basic/LiveLink/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #FFFFFF 4 | #000000 5 | 6 | -------------------------------------------------------------------------------- /MLVB-API-Example/Basic/LivePK/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #FFFFFF 4 | #000000 5 | 6 | -------------------------------------------------------------------------------- /MLVB-API-Example/Basic/LivePlay/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #FFFFFF 4 | #000000 5 | 6 | -------------------------------------------------------------------------------- /MLVB-API-Example/Basic/LivePushCamera/src/main/res/mipmap-xxhdpi/app_ic_ic_back.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiteAVSDK/Live_Android/HEAD/MLVB-API-Example/Basic/LivePushCamera/src/main/res/mipmap-xxhdpi/app_ic_ic_back.png -------------------------------------------------------------------------------- /SDK/README.md: -------------------------------------------------------------------------------- 1 | # MLVB SDK (Android) 2 | 3 | [简体中文](README-zh_CN.md) | English 4 | 5 | ## Download URL 6 | 7 | [Download Android MLVB SDK](https://liteav.sdk.qcloud.com/download/latest/TXLiteAVSDK_Smart_Android_latest.zip) 8 | -------------------------------------------------------------------------------- /MLVB-API-Example/Advanced/ThirdBeauty/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #FFFFFF 4 | #000000 5 | 6 | -------------------------------------------------------------------------------- /MLVB-API-Example/Advanced/TimeShift/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #FFFFFF 4 | #000000 5 | 6 | -------------------------------------------------------------------------------- /MLVB-API-Example/Basic/LivePushCamera/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #FFFFFF 4 | #000000 5 | 6 | -------------------------------------------------------------------------------- /MLVB-API-Example/Advanced/HlsAutoBitrate/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #FFFFFF 4 | #000000 5 | 6 | -------------------------------------------------------------------------------- /MLVB-API-Example/Advanced/LebAutoBitrate/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #FFFFFF 4 | #000000 5 | 6 | -------------------------------------------------------------------------------- /MLVB-API-Example/Advanced/PictureInPicture/src/main/res/values/color.xml.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #FFFFFF 4 | #000000 5 | -------------------------------------------------------------------------------- /MLVB-API-Example/Advanced/SwitchRenderView/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #FFFFFF 4 | #000000 5 | 6 | -------------------------------------------------------------------------------- /MLVB-API-Example/Basic/LivePushCamera/src/main/res/mipmap-xxhdpi/app_ic_bottom_mic_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiteAVSDK/Live_Android/HEAD/MLVB-API-Example/Basic/LivePushCamera/src/main/res/mipmap-xxhdpi/app_ic_bottom_mic_off.png -------------------------------------------------------------------------------- /MLVB-API-Example/Basic/LivePushCamera/src/main/res/mipmap-xxhdpi/app_ic_bottom_mic_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiteAVSDK/Live_Android/HEAD/MLVB-API-Example/Basic/LivePushCamera/src/main/res/mipmap-xxhdpi/app_ic_bottom_mic_on.png -------------------------------------------------------------------------------- /MLVB-API-Example/Advanced/NewTimeShiftSprite/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #FFFFFF 4 | #000000 5 | 6 | -------------------------------------------------------------------------------- /MLVB-API-Example/Basic/LivePushCamera/src/main/res/mipmap-xxhdpi/app_ic_remote_video_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiteAVSDK/Live_Android/HEAD/MLVB-API-Example/Basic/LivePushCamera/src/main/res/mipmap-xxhdpi/app_ic_remote_video_off.png -------------------------------------------------------------------------------- /MLVB-API-Example/Basic/LivePushCamera/src/main/res/mipmap-xxhdpi/app_ic_remote_video_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiteAVSDK/Live_Android/HEAD/MLVB-API-Example/Basic/LivePushCamera/src/main/res/mipmap-xxhdpi/app_ic_remote_video_on.png -------------------------------------------------------------------------------- /MLVB-API-Example/Basic/LivePushCamera/src/main/res/mipmap-xxhdpi/app_ic_bottom_camera_back.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiteAVSDK/Live_Android/HEAD/MLVB-API-Example/Basic/LivePushCamera/src/main/res/mipmap-xxhdpi/app_ic_bottom_camera_back.png -------------------------------------------------------------------------------- /MLVB-API-Example/Basic/LivePushCamera/src/main/res/mipmap-xxhdpi/app_ic_bottom_camera_front.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/LiteAVSDK/Live_Android/HEAD/MLVB-API-Example/Basic/LivePushCamera/src/main/res/mipmap-xxhdpi/app_ic_bottom_camera_front.png -------------------------------------------------------------------------------- /MLVB-API-Example/Advanced/TimeShift/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | live 3 | 直播时移 4 | 返回直播 5 | 6 | -------------------------------------------------------------------------------- /MLVB-API-Example/Common/src/main/res/values-en/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | Failed to join call as the user did not grant the required permission. 4 | -------------------------------------------------------------------------------- /MLVB-API-Example/Advanced/TimeShift/src/main/res/values-en/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | live 3 | Time Shift 4 | Resume Live 5 | 6 | -------------------------------------------------------------------------------- /MLVB-API-Example/Advanced/NewTimeShiftSprite/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | live 3 | 新直播时移雪碧图 4 | 获取缩略图 5 | 6 | -------------------------------------------------------------------------------- /MLVB-API-Example/Advanced/PictureInPicture/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 7 | 8 | -------------------------------------------------------------------------------- /MLVB-API-Example/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Fri Mar 13 20:47:26 CST 2020 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | distributionUrl=https\://services.gradle.org/distributions/gradle-7.2-bin.zip 7 | -------------------------------------------------------------------------------- /MLVB-API-Example/Advanced/NewTimeShiftSprite/src/main/res/values-en/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | live 3 | New Time Shift Sprite 4 | Get Sprite Thumb 5 | 6 | -------------------------------------------------------------------------------- /MLVB-API-Example/Basic/LivePushCamera/src/main/res/drawable/livepusher_content_bg.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | -------------------------------------------------------------------------------- /MLVB-API-Example/Basic/LivePushScreen/src/main/res/drawable/livepusher_content_bg.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 7 | -------------------------------------------------------------------------------- /MLVB-API-Example/Advanced/CustomVideoCapture/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | live 3 | 请输入streamId 4 | 停止推流 5 | 开始推流 6 | 7 | -------------------------------------------------------------------------------- /MLVB-API-Example/Advanced/CustomVideoCapture/src/main/res/values-en/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | live 3 | Stream ID 4 | Stop 5 | Publish 6 | 7 | -------------------------------------------------------------------------------- /MLVB-API-Example/Common/src/main/res/drawable/common_seekbar_thumb.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /MLVB-API-Example/Basic/LivePK/src/main/res/drawable/livepk_selector_role_btn_bg.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /MLVB-API-Example/Basic/LiveLink/src/main/res/drawable/livelink_selector_role_btn_bg.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /MLVB-API-Example/Common/src/main/res/drawable/common_selector_radio_bg.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 8 | -------------------------------------------------------------------------------- /MLVB-API-Example/App/src/main/res/drawable/button_bg.xml: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /MLVB-API-Example/Common/src/main/res/drawable/common_button_bg.xml: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | 11 | 12 | -------------------------------------------------------------------------------- /MLVB-API-Example/Advanced/PictureInPicture/src/main/res/values-en/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | live 3 | MLVB API Example 4 | Enable 5 | Pause 6 | Disable 7 | Resume 8 | -------------------------------------------------------------------------------- /MLVB-API-Example/Common/src/main/res/drawable/common_button_grey_bg.xml: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | 11 | 12 | -------------------------------------------------------------------------------- /MLVB-API-Example/Advanced/ThirdBeauty/src/main/res/drawable/button_bg.xml: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /MLVB-API-Example/Common/src/main/res/drawable/common_rb_icon_selector.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /MLVB-API-Example/Advanced/CustomVideoCapture/src/main/java/com/tencent/mlvb/customvideocapture/helper/basic/TextureFrame.java: -------------------------------------------------------------------------------- 1 | package com.tencent.mlvb.customvideocapture.helper.basic; 2 | 3 | import android.opengl.EGLContext; 4 | 5 | public class TextureFrame { 6 | public EGLContext eglContext; 7 | 8 | public int textureId; 9 | 10 | public int width; 11 | 12 | public int height; 13 | 14 | public long timestampMs; 15 | } 16 | -------------------------------------------------------------------------------- /MLVB-API-Example/Advanced/ThirdBeauty/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | live 3 | 开始推流 4 | 请输入streamId 5 | 停止推流 6 | 第三方美颜 7 | 腾讯特效美颜 8 | 9 | -------------------------------------------------------------------------------- /MLVB-API-Example/Common/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #0062e3 4 | #EFEFEF 5 | #FFFFFF 6 | #0062e3 7 | #999999 8 | #1B1B1B 9 | -------------------------------------------------------------------------------- /MLVB-API-Example/Advanced/HlsAutoBitrate/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | live 3 | HLS自适应播放 4 | 无缝切流到1080P 5 | 无缝切流到720P 6 | 无缝切流到540P 7 | 开启自适应播放 8 | 9 | -------------------------------------------------------------------------------- /MLVB-API-Example/Advanced/ThirdBeauty/src/main/res/values-en/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | live 3 | Publish 4 | Stream Id 5 | Stop 6 | Third-Party Beauty Filters 7 | Tencent Effect Beauty Filters 8 | 9 | -------------------------------------------------------------------------------- /MLVB-API-Example/Advanced/PictureInPicture/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | live 3 | 腾讯云MLVB API Example 4 | 开启画中画功能 5 | 暂停 6 | 关闭画中画功能 7 | 恢复 8 | 当前设备不支持画中画功能 9 | -------------------------------------------------------------------------------- /MLVB-API-Example/Advanced/SwitchRenderView/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | live 3 | 请输入streamId 4 | 开始推流 5 | 停止推流 6 | 请停止推流重新推流 7 | 切换渲染View 8 | 9 | -------------------------------------------------------------------------------- /MLVB-API-Example/App/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #008577 4 | #00574B 5 | #D81B60 6 | 7 | #1B1B1B 8 | #037BFF 9 | #8F8F8F 10 | #B7B7B7 11 | 12 | -------------------------------------------------------------------------------- /MLVB-API-Example/Advanced/HlsAutoBitrate/src/main/res/values-en/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | live 3 | HLS Auto Bitrate Play 4 | Switch To 1080P 5 | Switch To 720P 6 | Switch To 540P 7 | Start Auto Bitrate 8 | 9 | -------------------------------------------------------------------------------- /MLVB-API-Example/Advanced/SwitchRenderView/src/main/res/values-en/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | live 3 | Stream Id 4 | Publish 5 | Stop 6 | Stop and publish again. 7 | Switch Rendering View 8 | 9 | -------------------------------------------------------------------------------- /MLVB-API-Example/Advanced/LebAutoBitrate/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | live 3 | 快直播自适应播放 4 | 无缝切流到1080P 5 | 无缝切流到720P 6 | 无缝切流到540P 7 | 开启自适应播放 8 | 停止自适应播放 9 | 10 | -------------------------------------------------------------------------------- /MLVB-API-Example/Common/src/main/res/drawable/common_edit_bg.xml: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | 11 | 12 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /MLVB-API-Example/Basic/LivePushCamera/src/main/res/menu/livepushcamera_rotate.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 10 | 11 | 14 | 17 | -------------------------------------------------------------------------------- /MLVB-API-Example/Advanced/TimeShift/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /MLVB-API-Example/Basic/LivePushCamera/src/main/res/menu/livepushcamera_mirror.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 10 | 11 | 14 | -------------------------------------------------------------------------------- /MLVB-API-Example/Advanced/NewTimeShiftSprite/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /MLVB-API-Example/Basic/LivePushCamera/src/main/res/menu/livepushcamera_resolution.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 10 | 13 | 16 | 17 | -------------------------------------------------------------------------------- /MLVB-API-Example/Advanced/LebAutoBitrate/src/main/res/values-en/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | live 3 | Webrtc Auto Bitrate Play 4 | Switch To 1080P 5 | Switch To 720P 6 | Switch To 540P 7 | Start Auto Bitrate 8 | Close Auto Bitrate 9 | 10 | -------------------------------------------------------------------------------- /MLVB-API-Example/Advanced/CustomVideoCapture/src/main/java/com/tencent/mlvb/customvideocapture/helper/basic/Size.java: -------------------------------------------------------------------------------- 1 | package com.tencent.mlvb.customvideocapture.helper.basic; 2 | 3 | public class Size { 4 | public int width; 5 | public int height; 6 | 7 | public Size() { 8 | } 9 | 10 | public Size(int width, int height) { 11 | this.width = width; 12 | this.height = height; 13 | } 14 | 15 | @SuppressWarnings("SuspiciousNameCombination") 16 | public void swap() { 17 | int temp = width; 18 | width = height; 19 | height = temp; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /MLVB-API-Example/Advanced/HlsAutoBitrate/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /MLVB-API-Example/Advanced/LebAutoBitrate/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /MLVB-API-Example/Advanced/CustomVideoCapture/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /MLVB-API-Example/Advanced/SwitchRenderView/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /MLVB-API-Example/Basic/LebPlay/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | live 3 | 静音 4 | 取消静音 5 | MLVB 快直播拉流 6 | 请输入streamId 7 | 快直播(Live Event Broadcasting,LEB)是标准直播在超低延迟播放场景下的延伸,强烈推荐,秒开效果最好,支持超高并发。 8 | 快直播拉流 9 | 腾讯云官方推荐使用快直播拉流方式 10 | 11 | -------------------------------------------------------------------------------- /MLVB-API-Example/settings.gradle: -------------------------------------------------------------------------------- 1 | include ':App' 2 | include ':Debug' 3 | include ':Common' 4 | include ':Basic:LivePushCamera' 5 | include ':Basic:LivePushScreen' 6 | include ':Basic:LivePlay' 7 | include ':Basic:LebPlay' 8 | include ':Basic:LiveLink' 9 | include ':Basic:LivePK' 10 | include ':Advanced:SwitchRenderView' 11 | include ':Advanced:CustomVideoCapture' 12 | include ':Advanced:ThirdBeauty' 13 | include ':Advanced:RTCPushAndPlay' 14 | include ':Advanced:LebAutoBitrate' 15 | include ':Advanced:HlsAutoBitrate' 16 | include ':Advanced:TimeShift' 17 | include ':Advanced:NewTimeShiftSprite' 18 | include ':Advanced:PictureInPicture' 19 | -------------------------------------------------------------------------------- /MLVB-API-Example/Basic/LebPlay/src/main/res/values-en/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | live 3 | Mute 4 | Unmute 5 | MLVB Playback 6 | Stream Id 7 | LEB is an ultra-low-latency version of LVB. It delivers excellent instant streaming performance and can handle ultra-high concurrency. 8 | LEB Playback 9 | LEB playback is recommended. 10 | 11 | -------------------------------------------------------------------------------- /MLVB-API-Example/Debug/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.library' 2 | 3 | android { 4 | compileSdkVersion rootProject.ext.compileSdkVersion 5 | buildToolsVersion rootProject.ext.buildToolsVersion 6 | 7 | defaultConfig { 8 | minSdkVersion rootProject.ext.minSdkVersion 9 | targetSdkVersion rootProject.ext.targetSdkVersion 10 | versionCode 1 11 | versionName "1.0" 12 | } 13 | 14 | buildTypes { 15 | release { 16 | minifyEnabled false 17 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 18 | } 19 | } 20 | 21 | } 22 | 23 | dependencies { 24 | implementation fileTree(include: ['*.jar'], dir: 'libs') 25 | } 26 | 27 | -------------------------------------------------------------------------------- /MLVB-API-Example/Advanced/ThirdBeauty/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /MLVB-API-Example/Basic/LivePushCamera/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | 10 | 11 | 12 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /MLVB-API-Example/Basic/LebPlay/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 10 | 11 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /MLVB-API-Example/Basic/LivePlay/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 10 | 11 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /MLVB-API-Example/Advanced/PictureInPicture/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /MLVB-API-Example/Common/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # You can control the set of applied configuration files using the 3 | # proguardFiles setting in build.gradle. 4 | # 5 | # For more details, see 6 | # http://developer.android.com/guide/developing/tools/proguard.html 7 | 8 | # If your project uses WebView with JS, uncomment the following 9 | # and specify the fully qualified class name to the JavaScript interface 10 | # class: 11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 12 | # public *; 13 | #} 14 | 15 | # Uncomment this to preserve the line number information for 16 | # debugging stack traces. 17 | #-keepattributes SourceFile,LineNumberTable 18 | 19 | # If you keep the line number information, uncomment this to 20 | # hide the original source file name. 21 | #-renamesourcefileattribute SourceFile -------------------------------------------------------------------------------- /MLVB-API-Example/App/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # You can control the set of applied configuration files using the 3 | # proguardFiles setting in build.gradle. 4 | # 5 | # For more details, see 6 | # http://developer.android.com/guide/developing/tools/proguard.html 7 | 8 | # If your project uses WebView with JS, uncomment the following 9 | # and specify the fully qualified class name to the JavaScript interface 10 | # class: 11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 12 | # public *; 13 | #} 14 | 15 | # Uncomment this to preserve the line number information for 16 | # debugging stack traces. 17 | #-keepattributes SourceFile,LineNumberTable 18 | 19 | # If you keep the line number information, uncomment this to 20 | # hide the original source file name. 21 | #-renamesourcefileattribute SourceFile 22 | -------------------------------------------------------------------------------- /MLVB-API-Example/Debug/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # You can control the set of applied configuration files using the 3 | # proguardFiles setting in build.gradle. 4 | # 5 | # For more details, see 6 | # http://developer.android.com/guide/developing/tools/proguard.html 7 | 8 | # If your project uses WebView with JS, uncomment the following 9 | # and specify the fully qualified class name to the JavaScript interface 10 | # class: 11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 12 | # public *; 13 | #} 14 | 15 | # Uncomment this to preserve the line number information for 16 | # debugging stack traces. 17 | #-keepattributes SourceFile,LineNumberTable 18 | 19 | # If you keep the line number information, uncomment this to 20 | # hide the original source file name. 21 | #-renamesourcefileattribute SourceFile 22 | -------------------------------------------------------------------------------- /MLVB-API-Example/Basic/LebPlay/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # You can control the set of applied configuration files using the 3 | # proguardFiles setting in build.gradle. 4 | # 5 | # For more details, see 6 | # http://developer.android.com/guide/developing/tools/proguard.html 7 | 8 | # If your project uses WebView with JS, uncomment the following 9 | # and specify the fully qualified class name to the JavaScript interface 10 | # class: 11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 12 | # public *; 13 | #} 14 | 15 | # Uncomment this to preserve the line number information for 16 | # debugging stack traces. 17 | #-keepattributes SourceFile,LineNumberTable 18 | 19 | # If you keep the line number information, uncomment this to 20 | # hide the original source file name. 21 | #-renamesourcefileattribute SourceFile -------------------------------------------------------------------------------- /MLVB-API-Example/Basic/LiveLink/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # You can control the set of applied configuration files using the 3 | # proguardFiles setting in build.gradle. 4 | # 5 | # For more details, see 6 | # http://developer.android.com/guide/developing/tools/proguard.html 7 | 8 | # If your project uses WebView with JS, uncomment the following 9 | # and specify the fully qualified class name to the JavaScript interface 10 | # class: 11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 12 | # public *; 13 | #} 14 | 15 | # Uncomment this to preserve the line number information for 16 | # debugging stack traces. 17 | #-keepattributes SourceFile,LineNumberTable 18 | 19 | # If you keep the line number information, uncomment this to 20 | # hide the original source file name. 21 | #-renamesourcefileattribute SourceFile -------------------------------------------------------------------------------- /MLVB-API-Example/Basic/LivePK/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # You can control the set of applied configuration files using the 3 | # proguardFiles setting in build.gradle. 4 | # 5 | # For more details, see 6 | # http://developer.android.com/guide/developing/tools/proguard.html 7 | 8 | # If your project uses WebView with JS, uncomment the following 9 | # and specify the fully qualified class name to the JavaScript interface 10 | # class: 11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 12 | # public *; 13 | #} 14 | 15 | # Uncomment this to preserve the line number information for 16 | # debugging stack traces. 17 | #-keepattributes SourceFile,LineNumberTable 18 | 19 | # If you keep the line number information, uncomment this to 20 | # hide the original source file name. 21 | #-renamesourcefileattribute SourceFile -------------------------------------------------------------------------------- /MLVB-API-Example/Basic/LivePlay/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # You can control the set of applied configuration files using the 3 | # proguardFiles setting in build.gradle. 4 | # 5 | # For more details, see 6 | # http://developer.android.com/guide/developing/tools/proguard.html 7 | 8 | # If your project uses WebView with JS, uncomment the following 9 | # and specify the fully qualified class name to the JavaScript interface 10 | # class: 11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 12 | # public *; 13 | #} 14 | 15 | # Uncomment this to preserve the line number information for 16 | # debugging stack traces. 17 | #-keepattributes SourceFile,LineNumberTable 18 | 19 | # If you keep the line number information, uncomment this to 20 | # hide the original source file name. 21 | #-renamesourcefileattribute SourceFile -------------------------------------------------------------------------------- /MLVB-API-Example/Advanced/ThirdBeauty/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # You can control the set of applied configuration files using the 3 | # proguardFiles setting in build.gradle. 4 | # 5 | # For more details, see 6 | # http://developer.android.com/guide/developing/tools/proguard.html 7 | 8 | # If your project uses WebView with JS, uncomment the following 9 | # and specify the fully qualified class name to the JavaScript interface 10 | # class: 11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 12 | # public *; 13 | #} 14 | 15 | # Uncomment this to preserve the line number information for 16 | # debugging stack traces. 17 | #-keepattributes SourceFile,LineNumberTable 18 | 19 | # If you keep the line number information, uncomment this to 20 | # hide the original source file name. 21 | #-renamesourcefileattribute SourceFile -------------------------------------------------------------------------------- /MLVB-API-Example/Advanced/TimeShift/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # You can control the set of applied configuration files using the 3 | # proguardFiles setting in build.gradle. 4 | # 5 | # For more details, see 6 | # http://developer.android.com/guide/developing/tools/proguard.html 7 | 8 | # If your project uses WebView with JS, uncomment the following 9 | # and specify the fully qualified class name to the JavaScript interface 10 | # class: 11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 12 | # public *; 13 | #} 14 | 15 | # Uncomment this to preserve the line number information for 16 | # debugging stack traces. 17 | #-keepattributes SourceFile,LineNumberTable 18 | 19 | # If you keep the line number information, uncomment this to 20 | # hide the original source file name. 21 | #-renamesourcefileattribute SourceFile -------------------------------------------------------------------------------- /MLVB-API-Example/Basic/LivePushCamera/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # You can control the set of applied configuration files using the 3 | # proguardFiles setting in build.gradle. 4 | # 5 | # For more details, see 6 | # http://developer.android.com/guide/developing/tools/proguard.html 7 | 8 | # If your project uses WebView with JS, uncomment the following 9 | # and specify the fully qualified class name to the JavaScript interface 10 | # class: 11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 12 | # public *; 13 | #} 14 | 15 | # Uncomment this to preserve the line number information for 16 | # debugging stack traces. 17 | #-keepattributes SourceFile,LineNumberTable 18 | 19 | # If you keep the line number information, uncomment this to 20 | # hide the original source file name. 21 | #-renamesourcefileattribute SourceFile -------------------------------------------------------------------------------- /MLVB-API-Example/Basic/LivePushScreen/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # You can control the set of applied configuration files using the 3 | # proguardFiles setting in build.gradle. 4 | # 5 | # For more details, see 6 | # http://developer.android.com/guide/developing/tools/proguard.html 7 | 8 | # If your project uses WebView with JS, uncomment the following 9 | # and specify the fully qualified class name to the JavaScript interface 10 | # class: 11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 12 | # public *; 13 | #} 14 | 15 | # Uncomment this to preserve the line number information for 16 | # debugging stack traces. 17 | #-keepattributes SourceFile,LineNumberTable 18 | 19 | # If you keep the line number information, uncomment this to 20 | # hide the original source file name. 21 | #-renamesourcefileattribute SourceFile -------------------------------------------------------------------------------- /MLVB-API-Example/Advanced/HlsAutoBitrate/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # You can control the set of applied configuration files using the 3 | # proguardFiles setting in build.gradle. 4 | # 5 | # For more details, see 6 | # http://developer.android.com/guide/developing/tools/proguard.html 7 | 8 | # If your project uses WebView with JS, uncomment the following 9 | # and specify the fully qualified class name to the JavaScript interface 10 | # class: 11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 12 | # public *; 13 | #} 14 | 15 | # Uncomment this to preserve the line number information for 16 | # debugging stack traces. 17 | #-keepattributes SourceFile,LineNumberTable 18 | 19 | # If you keep the line number information, uncomment this to 20 | # hide the original source file name. 21 | #-renamesourcefileattribute SourceFile -------------------------------------------------------------------------------- /MLVB-API-Example/Advanced/LebAutoBitrate/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # You can control the set of applied configuration files using the 3 | # proguardFiles setting in build.gradle. 4 | # 5 | # For more details, see 6 | # http://developer.android.com/guide/developing/tools/proguard.html 7 | 8 | # If your project uses WebView with JS, uncomment the following 9 | # and specify the fully qualified class name to the JavaScript interface 10 | # class: 11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 12 | # public *; 13 | #} 14 | 15 | # Uncomment this to preserve the line number information for 16 | # debugging stack traces. 17 | #-keepattributes SourceFile,LineNumberTable 18 | 19 | # If you keep the line number information, uncomment this to 20 | # hide the original source file name. 21 | #-renamesourcefileattribute SourceFile -------------------------------------------------------------------------------- /MLVB-API-Example/Advanced/PictureInPicture/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # You can control the set of applied configuration files using the 3 | # proguardFiles setting in build.gradle. 4 | # 5 | # For more details, see 6 | # http://developer.android.com/guide/developing/tools/proguard.html 7 | 8 | # If your project uses WebView with JS, uncomment the following 9 | # and specify the fully qualified class name to the JavaScript interface 10 | # class: 11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 12 | # public *; 13 | #} 14 | 15 | # Uncomment this to preserve the line number information for 16 | # debugging stack traces. 17 | #-keepattributes SourceFile,LineNumberTable 18 | 19 | # If you keep the line number information, uncomment this to 20 | # hide the original source file name. 21 | #-renamesourcefileattribute SourceFile -------------------------------------------------------------------------------- /MLVB-API-Example/Advanced/RTCPushAndPlay/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # You can control the set of applied configuration files using the 3 | # proguardFiles setting in build.gradle. 4 | # 5 | # For more details, see 6 | # http://developer.android.com/guide/developing/tools/proguard.html 7 | 8 | # If your project uses WebView with JS, uncomment the following 9 | # and specify the fully qualified class name to the JavaScript interface 10 | # class: 11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 12 | # public *; 13 | #} 14 | 15 | # Uncomment this to preserve the line number information for 16 | # debugging stack traces. 17 | #-keepattributes SourceFile,LineNumberTable 18 | 19 | # If you keep the line number information, uncomment this to 20 | # hide the original source file name. 21 | #-renamesourcefileattribute SourceFile -------------------------------------------------------------------------------- /MLVB-API-Example/Advanced/SwitchRenderView/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # You can control the set of applied configuration files using the 3 | # proguardFiles setting in build.gradle. 4 | # 5 | # For more details, see 6 | # http://developer.android.com/guide/developing/tools/proguard.html 7 | 8 | # If your project uses WebView with JS, uncomment the following 9 | # and specify the fully qualified class name to the JavaScript interface 10 | # class: 11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 12 | # public *; 13 | #} 14 | 15 | # Uncomment this to preserve the line number information for 16 | # debugging stack traces. 17 | #-keepattributes SourceFile,LineNumberTable 18 | 19 | # If you keep the line number information, uncomment this to 20 | # hide the original source file name. 21 | #-renamesourcefileattribute SourceFile -------------------------------------------------------------------------------- /MLVB-API-Example/Advanced/CustomVideoCapture/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # You can control the set of applied configuration files using the 3 | # proguardFiles setting in build.gradle. 4 | # 5 | # For more details, see 6 | # http://developer.android.com/guide/developing/tools/proguard.html 7 | 8 | # If your project uses WebView with JS, uncomment the following 9 | # and specify the fully qualified class name to the JavaScript interface 10 | # class: 11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 12 | # public *; 13 | #} 14 | 15 | # Uncomment this to preserve the line number information for 16 | # debugging stack traces. 17 | #-keepattributes SourceFile,LineNumberTable 18 | 19 | # If you keep the line number information, uncomment this to 20 | # hide the original source file name. 21 | #-renamesourcefileattribute SourceFile -------------------------------------------------------------------------------- /MLVB-API-Example/Advanced/NewTimeShiftSprite/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # You can control the set of applied configuration files using the 3 | # proguardFiles setting in build.gradle. 4 | # 5 | # For more details, see 6 | # http://developer.android.com/guide/developing/tools/proguard.html 7 | 8 | # If your project uses WebView with JS, uncomment the following 9 | # and specify the fully qualified class name to the JavaScript interface 10 | # class: 11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 12 | # public *; 13 | #} 14 | 15 | # Uncomment this to preserve the line number information for 16 | # debugging stack traces. 17 | #-keepattributes SourceFile,LineNumberTable 18 | 19 | # If you keep the line number information, uncomment this to 20 | # hide the original source file name. 21 | #-renamesourcefileattribute SourceFile -------------------------------------------------------------------------------- /MLVB-API-Example/Common/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id 'com.android.library' 3 | } 4 | 5 | 6 | android { 7 | compileSdkVersion rootProject.ext.compileSdkVersion 8 | buildToolsVersion rootProject.ext.buildToolsVersion 9 | 10 | defaultConfig { 11 | minSdkVersion rootProject.ext.minSdkVersion 12 | targetSdkVersion rootProject.ext.targetSdkVersion 13 | versionCode 1 14 | versionName "1.0" 15 | ndk { 16 | abiFilters "armeabi-v7a", "arm64-v8a" 17 | } 18 | } 19 | 20 | buildTypes { 21 | release { 22 | minifyEnabled false 23 | proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' 24 | } 25 | } 26 | 27 | } 28 | 29 | dependencies { 30 | 31 | implementation 'androidx.appcompat:appcompat:1.1.0' 32 | implementation project(':Debug') 33 | } -------------------------------------------------------------------------------- /MLVB-API-Example/Basic/LivePlay/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | live 3 | 静音 4 | MLVB 直播拉流 5 | 请输入streamId 6 | RTC拉流为腾讯云自研实时音视频协议,超低延迟、抗弱网能力强,全球覆盖适用于电商秒杀,体育赛事等多个场景,更多细节详见:https://cloud.tencent.com/document/product/454/56598 目前仅仅中国大陆支持,其他地区正持续开发中。\n\n标准直播拉流支持FLV、RTMP、HLS等多种格式,成熟度高,并 发量强,但是延迟高 7 | RTC拉流 8 | RTMP拉流 9 | 快直播拉流(推荐) 10 | 取消静音 11 | FLV拉流 12 | HLS拉流 13 | 14 | -------------------------------------------------------------------------------- /MLVB-API-Example/App/src/main/java/com/tencent/mlvb/apiexample/MLVBApplication.java: -------------------------------------------------------------------------------- 1 | package com.tencent.mlvb.apiexample; 2 | 3 | import android.app.Application; 4 | 5 | import androidx.multidex.MultiDex; 6 | 7 | import com.tencent.live2.V2TXLiveDef.V2TXLiveLogConfig; 8 | import com.tencent.live2.V2TXLivePremier; 9 | import com.tencent.mlvb.debug.GenerateTestUserSig; 10 | 11 | public class MLVBApplication extends Application { 12 | 13 | private static MLVBApplication instance; 14 | 15 | @Override 16 | public void onCreate() { 17 | super.onCreate(); 18 | MultiDex.install(this); 19 | instance = this; 20 | V2TXLiveLogConfig liveLogConfig = new V2TXLiveLogConfig(); 21 | liveLogConfig.enableConsole = true; 22 | V2TXLivePremier.setLogConfig(liveLogConfig); 23 | V2TXLivePremier.setLicence(instance, GenerateTestUserSig.LICENSEURL, GenerateTestUserSig.LICENSEURLKEY); 24 | } 25 | 26 | } 27 | -------------------------------------------------------------------------------- /MLVB-API-Example/Basic/LivePushScreen/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | live 3 | 开始录屏推流 4 | MLVB 录屏推流 5 | 请输入streamId 6 | 请选择音频质量 7 | 默认 8 | 语音 9 | 音乐 10 | 标准直播推流 11 | RTC推流为腾讯云自研实时音视频协议,相比传统的直播协议,具备如下优势:超低延迟、弱网超强抗性、支持全球范围,更多细节详见:https://cloud.tencent.com/document/product/454/56595 目前仅中国大陆支持,其他地区正持续开发中。 12 | RTC推流(推荐) 13 | 关闭录屏推流 14 | 15 | -------------------------------------------------------------------------------- /MLVB-API-Example/Basic/LiveLink/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 11 | 15 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /MLVB-API-Example/Basic/LebPlay/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.library' 2 | 3 | android { 4 | compileSdkVersion rootProject.ext.compileSdkVersion 5 | buildToolsVersion rootProject.ext.buildToolsVersion 6 | 7 | defaultConfig { 8 | minSdkVersion rootProject.ext.minSdkVersion 9 | targetSdkVersion rootProject.ext.targetSdkVersion 10 | versionCode 1 11 | versionName "1.0" 12 | ndk { 13 | abiFilters "armeabi-v7a", "arm64-v8a" 14 | } 15 | } 16 | 17 | buildTypes { 18 | release { 19 | minifyEnabled false 20 | proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' 21 | } 22 | } 23 | } 24 | 25 | dependencies { 26 | implementation fileTree(dir: "libs", include: ["*.jar"]) 27 | implementation 'androidx.appcompat:appcompat:1.1.0' 28 | implementation rootProject.ext.liteavSdk 29 | implementation project(':Debug') 30 | implementation project(':Common') 31 | } -------------------------------------------------------------------------------- /MLVB-API-Example/Basic/LiveLink/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.library' 2 | 3 | android { 4 | compileSdkVersion rootProject.ext.compileSdkVersion 5 | buildToolsVersion rootProject.ext.buildToolsVersion 6 | 7 | defaultConfig { 8 | minSdkVersion rootProject.ext.minSdkVersion 9 | targetSdkVersion rootProject.ext.targetSdkVersion 10 | versionCode 1 11 | versionName "1.0" 12 | ndk { 13 | abiFilters "armeabi-v7a", "arm64-v8a" 14 | } 15 | } 16 | 17 | buildTypes { 18 | release { 19 | minifyEnabled false 20 | proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' 21 | } 22 | } 23 | } 24 | 25 | dependencies { 26 | implementation fileTree(dir: "libs", include: ["*.jar"]) 27 | implementation 'androidx.appcompat:appcompat:1.1.0' 28 | implementation rootProject.ext.liteavSdk 29 | implementation project(':Debug') 30 | implementation project(':Common') 31 | } -------------------------------------------------------------------------------- /MLVB-API-Example/Basic/LivePK/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.library' 2 | 3 | android { 4 | compileSdkVersion rootProject.ext.compileSdkVersion 5 | buildToolsVersion rootProject.ext.buildToolsVersion 6 | 7 | defaultConfig { 8 | minSdkVersion rootProject.ext.minSdkVersion 9 | targetSdkVersion rootProject.ext.targetSdkVersion 10 | versionCode 1 11 | versionName "1.0" 12 | ndk { 13 | abiFilters "armeabi-v7a", "arm64-v8a" 14 | } 15 | } 16 | 17 | buildTypes { 18 | release { 19 | minifyEnabled false 20 | proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' 21 | } 22 | } 23 | } 24 | 25 | dependencies { 26 | implementation fileTree(dir: "libs", include: ["*.jar"]) 27 | implementation 'androidx.appcompat:appcompat:1.1.0' 28 | implementation rootProject.ext.liteavSdk 29 | implementation project(':Debug') 30 | implementation project(':Common') 31 | } -------------------------------------------------------------------------------- /MLVB-API-Example/Basic/LivePlay/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.library' 2 | 3 | android { 4 | compileSdkVersion rootProject.ext.compileSdkVersion 5 | buildToolsVersion rootProject.ext.buildToolsVersion 6 | 7 | defaultConfig { 8 | minSdkVersion rootProject.ext.minSdkVersion 9 | targetSdkVersion rootProject.ext.targetSdkVersion 10 | versionCode 1 11 | versionName "1.0" 12 | ndk { 13 | abiFilters "armeabi-v7a", "arm64-v8a" 14 | } 15 | } 16 | 17 | buildTypes { 18 | release { 19 | minifyEnabled false 20 | proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' 21 | } 22 | } 23 | } 24 | 25 | dependencies { 26 | implementation fileTree(dir: "libs", include: ["*.jar"]) 27 | implementation 'androidx.appcompat:appcompat:1.1.0' 28 | implementation rootProject.ext.liteavSdk 29 | implementation project(':Debug') 30 | implementation project(':Common') 31 | } -------------------------------------------------------------------------------- /MLVB-API-Example/Advanced/ThirdBeauty/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.library' 2 | 3 | android { 4 | compileSdkVersion rootProject.ext.compileSdkVersion 5 | buildToolsVersion rootProject.ext.buildToolsVersion 6 | 7 | defaultConfig { 8 | minSdkVersion rootProject.ext.minSdkVersion 9 | targetSdkVersion rootProject.ext.targetSdkVersion 10 | versionCode 1 11 | versionName "1.0" 12 | ndk { 13 | abiFilters "armeabi-v7a", "arm64-v8a" 14 | } 15 | } 16 | 17 | buildTypes { 18 | release { 19 | minifyEnabled false 20 | proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' 21 | } 22 | } 23 | } 24 | 25 | dependencies { 26 | implementation fileTree(dir: "libs", include: ["*.jar"]) 27 | implementation rootProject.ext.liteavSdk 28 | implementation 'androidx.appcompat:appcompat:1.1.0' 29 | implementation project(':Debug') 30 | implementation project(':Common') 31 | } -------------------------------------------------------------------------------- /MLVB-API-Example/Advanced/TimeShift/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.library' 2 | 3 | android { 4 | compileSdkVersion rootProject.ext.compileSdkVersion 5 | buildToolsVersion rootProject.ext.buildToolsVersion 6 | 7 | defaultConfig { 8 | minSdkVersion rootProject.ext.minSdkVersion 9 | targetSdkVersion rootProject.ext.targetSdkVersion 10 | versionCode 1 11 | versionName "1.0" 12 | ndk { 13 | abiFilters "armeabi-v7a", "arm64-v8a" 14 | } 15 | } 16 | 17 | buildTypes { 18 | release { 19 | minifyEnabled false 20 | proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' 21 | } 22 | } 23 | } 24 | 25 | dependencies { 26 | implementation fileTree(dir: "libs", include: ["*.jar"]) 27 | implementation rootProject.ext.liteavSdk 28 | implementation 'androidx.appcompat:appcompat:1.1.0' 29 | implementation project(':Debug') 30 | implementation project(':Common') 31 | } -------------------------------------------------------------------------------- /MLVB-API-Example/Basic/LivePushCamera/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.library' 2 | 3 | android { 4 | compileSdkVersion rootProject.ext.compileSdkVersion 5 | buildToolsVersion rootProject.ext.buildToolsVersion 6 | 7 | defaultConfig { 8 | minSdkVersion rootProject.ext.minSdkVersion 9 | targetSdkVersion rootProject.ext.targetSdkVersion 10 | versionCode 1 11 | versionName "1.0" 12 | ndk { 13 | abiFilters "armeabi-v7a", "arm64-v8a" 14 | } 15 | } 16 | 17 | buildTypes { 18 | release { 19 | minifyEnabled false 20 | proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' 21 | } 22 | } 23 | } 24 | 25 | dependencies { 26 | implementation fileTree(dir: "libs", include: ["*.jar"]) 27 | implementation 'androidx.appcompat:appcompat:1.1.0' 28 | implementation rootProject.ext.liteavSdk 29 | implementation project(':Debug') 30 | implementation project(':Common') 31 | } -------------------------------------------------------------------------------- /MLVB-API-Example/Basic/LivePushScreen/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.library' 2 | 3 | android { 4 | compileSdkVersion rootProject.ext.compileSdkVersion 5 | buildToolsVersion rootProject.ext.buildToolsVersion 6 | 7 | defaultConfig { 8 | minSdkVersion rootProject.ext.minSdkVersion 9 | targetSdkVersion rootProject.ext.targetSdkVersion 10 | versionCode 1 11 | versionName "1.0" 12 | ndk { 13 | abiFilters "armeabi-v7a", "arm64-v8a" 14 | } 15 | } 16 | 17 | buildTypes { 18 | release { 19 | minifyEnabled false 20 | proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' 21 | } 22 | } 23 | } 24 | 25 | dependencies { 26 | implementation fileTree(dir: "libs", include: ["*.jar"]) 27 | implementation 'androidx.appcompat:appcompat:1.1.0' 28 | implementation rootProject.ext.liteavSdk 29 | implementation project(':Debug') 30 | implementation project(':Common') 31 | } -------------------------------------------------------------------------------- /MLVB-API-Example/Advanced/HlsAutoBitrate/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.library' 2 | 3 | android { 4 | compileSdkVersion rootProject.ext.compileSdkVersion 5 | buildToolsVersion rootProject.ext.buildToolsVersion 6 | 7 | defaultConfig { 8 | minSdkVersion rootProject.ext.minSdkVersion 9 | targetSdkVersion rootProject.ext.targetSdkVersion 10 | versionCode 1 11 | versionName "1.0" 12 | ndk { 13 | abiFilters "armeabi-v7a", "arm64-v8a" 14 | } 15 | } 16 | 17 | buildTypes { 18 | release { 19 | minifyEnabled false 20 | proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' 21 | } 22 | } 23 | } 24 | 25 | dependencies { 26 | implementation fileTree(dir: "libs", include: ["*.jar"]) 27 | implementation rootProject.ext.liteavSdk 28 | implementation 'androidx.appcompat:appcompat:1.1.0' 29 | implementation project(':Debug') 30 | implementation project(':Common') 31 | } -------------------------------------------------------------------------------- /MLVB-API-Example/Advanced/LebAutoBitrate/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.library' 2 | 3 | android { 4 | compileSdkVersion rootProject.ext.compileSdkVersion 5 | buildToolsVersion rootProject.ext.buildToolsVersion 6 | 7 | defaultConfig { 8 | minSdkVersion rootProject.ext.minSdkVersion 9 | targetSdkVersion rootProject.ext.targetSdkVersion 10 | versionCode 1 11 | versionName "1.0" 12 | ndk { 13 | abiFilters "armeabi-v7a", "arm64-v8a" 14 | } 15 | } 16 | 17 | buildTypes { 18 | release { 19 | minifyEnabled false 20 | proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' 21 | } 22 | } 23 | } 24 | 25 | dependencies { 26 | implementation fileTree(dir: "libs", include: ["*.jar"]) 27 | implementation rootProject.ext.liteavSdk 28 | implementation 'androidx.appcompat:appcompat:1.1.0' 29 | implementation project(':Debug') 30 | implementation project(':Common') 31 | } -------------------------------------------------------------------------------- /MLVB-API-Example/Advanced/RTCPushAndPlay/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.library' 2 | 3 | android { 4 | compileSdkVersion rootProject.ext.compileSdkVersion 5 | buildToolsVersion rootProject.ext.buildToolsVersion 6 | 7 | defaultConfig { 8 | minSdkVersion rootProject.ext.minSdkVersion 9 | targetSdkVersion rootProject.ext.targetSdkVersion 10 | versionCode 1 11 | versionName "1.0" 12 | ndk { 13 | abiFilters "armeabi-v7a", "arm64-v8a" 14 | } 15 | } 16 | 17 | buildTypes { 18 | release { 19 | minifyEnabled false 20 | proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' 21 | } 22 | } 23 | } 24 | 25 | dependencies { 26 | implementation fileTree(dir: "libs", include: ["*.jar"]) 27 | implementation rootProject.ext.liteavSdk 28 | implementation 'androidx.appcompat:appcompat:1.1.0' 29 | implementation project(':Debug') 30 | implementation project(':Common') 31 | } -------------------------------------------------------------------------------- /MLVB-API-Example/Advanced/SwitchRenderView/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.library' 2 | 3 | android { 4 | compileSdkVersion rootProject.ext.compileSdkVersion 5 | buildToolsVersion rootProject.ext.buildToolsVersion 6 | 7 | defaultConfig { 8 | minSdkVersion rootProject.ext.minSdkVersion 9 | targetSdkVersion rootProject.ext.targetSdkVersion 10 | versionCode 1 11 | versionName "1.0" 12 | ndk { 13 | abiFilters "armeabi-v7a", "arm64-v8a" 14 | } 15 | } 16 | 17 | buildTypes { 18 | release { 19 | minifyEnabled false 20 | proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' 21 | } 22 | } 23 | } 24 | 25 | dependencies { 26 | implementation fileTree(dir: "libs", include: ["*.jar"]) 27 | implementation rootProject.ext.liteavSdk 28 | implementation 'androidx.appcompat:appcompat:1.1.0' 29 | implementation project(':Debug') 30 | implementation project(':Common') 31 | } -------------------------------------------------------------------------------- /MLVB-API-Example/Advanced/CustomVideoCapture/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.library' 2 | 3 | android { 4 | compileSdkVersion rootProject.ext.compileSdkVersion 5 | buildToolsVersion rootProject.ext.buildToolsVersion 6 | 7 | defaultConfig { 8 | minSdkVersion rootProject.ext.minSdkVersion 9 | targetSdkVersion rootProject.ext.targetSdkVersion 10 | versionCode 1 11 | versionName "1.0" 12 | ndk { 13 | abiFilters "armeabi-v7a", "arm64-v8a" 14 | } 15 | } 16 | 17 | buildTypes { 18 | release { 19 | minifyEnabled false 20 | proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' 21 | } 22 | } 23 | } 24 | 25 | dependencies { 26 | implementation fileTree(dir: "libs", include: ["*.jar"]) 27 | implementation rootProject.ext.liteavSdk 28 | implementation 'androidx.appcompat:appcompat:1.1.0' 29 | implementation project(':Debug') 30 | implementation project(':Common') 31 | } -------------------------------------------------------------------------------- /MLVB-API-Example/Basic/LebPlay/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 7 | 8 | 17 | 18 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /MLVB-API-Example/Basic/LiveLink/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 7 | 8 | 17 | 18 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /MLVB-API-Example/Basic/LivePK/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 7 | 8 | 17 | 18 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /MLVB-API-Example/Basic/LivePlay/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 7 | 8 | 17 | 18 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /MLVB-API-Example/Advanced/TimeShift/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 7 | 8 | 17 | 18 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /MLVB-API-Example/Advanced/HlsAutoBitrate/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 7 | 8 | 17 | 18 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /MLVB-API-Example/Advanced/LebAutoBitrate/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 7 | 8 | 17 | 18 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /MLVB-API-Example/Advanced/RTCPushAndPlay/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 7 | 8 | 17 | 18 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /MLVB-API-Example/Advanced/ThirdBeauty/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 7 | 8 | 17 | 18 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /MLVB-API-Example/Basic/LivePushCamera/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 7 | 8 | 17 | 18 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /MLVB-API-Example/Basic/LivePushScreen/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 7 | 8 | 17 | 18 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /MLVB-API-Example/Common/src/main/res/drawable/common_seekbar_style.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /MLVB-API-Example/Advanced/CustomVideoCapture/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 7 | 8 | 17 | 18 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /MLVB-API-Example/Advanced/NewTimeShiftSprite/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 7 | 8 | 17 | 18 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /MLVB-API-Example/Advanced/SwitchRenderView/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 7 | 8 | 17 | 18 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /MLVB-API-Example/Advanced/RTCPushAndPlay/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | live 3 | 开始连麦 4 | RTC拉流 5 | RTC连麦+超低延时播放 6 | 请输入streamId 7 | 请选择角色 8 | 主播 9 | 观众 10 | RTC推流 11 | 停止拉流 12 | 停止连麦 13 | RTC连麦+低延时拉流:\n1、主播A\n1.1、主播A开始推流\n1.2、主播A的观众拉主播A的流\n\n2、主播B\n2.1、主播B开始推流\n2.2、主播B的观众拉主播B的流\n\n3、主播A连麦主播B\n3.1、主播A拉主播B的流\n3.2、主播B拉主播A的流\n\n4、主播连麦后的观众端\n4.1、主播A的观众拉主播B的流\n4.2、主播B的观众拉主播A的流\n\n目前仅中国大陆支持,其他地区正陆续开发中。 14 | 15 | -------------------------------------------------------------------------------- /MLVB-API-Example/Basic/LivePK/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 11 | 15 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /MLVB-API-Example/Advanced/CustomVideoCapture/src/main/java/com/tencent/mlvb/customvideocapture/helper/render/EGLHelper.java: -------------------------------------------------------------------------------- 1 | package com.tencent.mlvb.customvideocapture.helper.render; 2 | 3 | /** 4 | * Android has two sets of EGL classes. 5 | * For convenience of use, they are abstracted and only the following interfaces are provided. 6 | * 7 | * @param 8 | */ 9 | public interface EGLHelper { 10 | /** 11 | * Returns EGLContext, used to create shared EGLContext, etc. 12 | */ 13 | T getContext(); 14 | 15 | /** 16 | * Bind EGLContext to the current thread, as well as the draw Surface and read Surface saved in Helper. 17 | */ 18 | void makeCurrent(); 19 | 20 | /** 21 | * Unbind the EGLContext, draw Surface, and read Surface bound to the current thread. 22 | */ 23 | void unmakeCurrent(); 24 | 25 | /** 26 | * Brush rendered content onto the bound draw target. 27 | */ 28 | boolean swapBuffers(); 29 | 30 | /** 31 | * Destroy the created EGLContext and related resources. 32 | */ 33 | void destroy(); 34 | } 35 | -------------------------------------------------------------------------------- /MLVB-API-Example/Advanced/NewTimeShiftSprite/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.library' 2 | 3 | android { 4 | compileSdkVersion rootProject.ext.compileSdkVersion 5 | buildToolsVersion rootProject.ext.buildToolsVersion 6 | 7 | defaultConfig { 8 | minSdkVersion rootProject.ext.minSdkVersion 9 | targetSdkVersion rootProject.ext.targetSdkVersion 10 | versionCode 1 11 | versionName "1.0" 12 | ndk { 13 | abiFilters "armeabi-v7a", "arm64-v8a" 14 | } 15 | } 16 | 17 | buildTypes { 18 | release { 19 | minifyEnabled false 20 | proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' 21 | } 22 | } 23 | } 24 | 25 | dependencies { 26 | implementation fileTree(dir: "libs", include: ["*.jar"]) 27 | implementation rootProject.ext.liteavSdk 28 | implementation 'androidx.appcompat:appcompat:1.1.0' 29 | implementation 'com.squareup.okhttp3:okhttp:3.11.0' 30 | implementation project(':Debug') 31 | implementation project(':Common') 32 | } -------------------------------------------------------------------------------- /MLVB-API-Example/Basic/LivePushScreen/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 12 | 13 | 17 | 18 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /MLVB-API-Example/Advanced/RTCPushAndPlay/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 9 | 13 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /MLVB-API-Example/Basic/LivePlay/src/main/res/values-en/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | live 3 | Mute 4 | MLVB Playback 5 | Stream Id 6 | Tencent Cloud’s proprietary RTC protocol features low latency and strong adaptability to poor network conditions, and can be used worldwide. It is suitable for application scenarios such as e-commerce streaming and sports streaming. For details, visit https://cloud.tencent.com/document/product/454/56598. Currently only supported by mainland China, other regions are continuing to develop. 7 | RTC Playback 8 | RTMP Playback 9 | LEB Playback (Recommended)) 10 | Unmute 11 | FLV Playback 12 | HLS Playback 13 | 14 | -------------------------------------------------------------------------------- /MLVB-API-Example/build.gradle: -------------------------------------------------------------------------------- 1 | // Top-level build file where you can add configuration options common to all sub-projects/modules. 2 | 3 | buildscript { 4 | repositories { 5 | mavenCentral() 6 | google() 7 | jcenter() 8 | } 9 | dependencies { 10 | classpath 'com.android.tools.build:gradle:7.1.3' 11 | 12 | // NOTE: Do not place your application dependencies here; they belong 13 | // in the individual module build.gradle files 14 | } 15 | } 16 | 17 | allprojects { 18 | repositories { 19 | mavenCentral() 20 | google() 21 | flatDir { 22 | dirs 'libs' 23 | dirs project(':App').file('libs') 24 | } 25 | } 26 | } 27 | 28 | task clean(type: Delete) { 29 | delete rootProject.buildDir 30 | } 31 | 32 | ext { 33 | compileSdkVersion = 34 34 | buildToolsVersion = "29.0.3" 35 | minSdkVersion = 19 36 | targetSdkVersion = 26 37 | supportSdkVersion = "29.0.3" 38 | liteavSdk="com.tencent.liteav:LiteAVSDK_Live:latest.release" 39 | versionCode = 1 40 | versionName = "v1.0" 41 | ndkAbi = 'armeabi'//,'armeabi-v7a', 'arm64-v8a' 42 | aekit_version = '1.0.10-cloud' 43 | } -------------------------------------------------------------------------------- /MLVB-API-Example/gradle.properties: -------------------------------------------------------------------------------- 1 | # Project-wide Gradle settings. 2 | # IDE (e.g. Android Studio) users: 3 | # Gradle settings configured through the IDE *will override* 4 | # any settings specified in this file. 5 | # For more details on how to configure your build environment visit 6 | # http://www.gradle.org/docs/current/userguide/build_environment.html 7 | # Specifies the JVM arguments used for the daemon process. 8 | # The setting is particularly useful for tweaking memory settings. 9 | org.gradle.jvmargs=-Xmx1536m 10 | # When configured, Gradle will run in incubating parallel mode. 11 | # This option should only be used with decoupled projects. More details, visit 12 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects 13 | # org.gradle.parallel=true 14 | # AndroidX package structure to make it clearer which packages are bundled with the 15 | # Android operating system, and which are packaged with your app's APK 16 | # https://developer.android.com/topic/libraries/support-library/androidx-rn 17 | android.useAndroidX=true 18 | # Automatically convert third-party libraries to use AndroidX 19 | android.enableJetifier=true 20 | 21 | android.injected.testOnly=false 22 | -------------------------------------------------------------------------------- /MLVB-API-Example/Advanced/PictureInPicture/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.library' 2 | 3 | android { 4 | compileSdkVersion rootProject.ext.compileSdkVersion 5 | buildToolsVersion rootProject.ext.buildToolsVersion 6 | 7 | defaultConfig { 8 | minSdkVersion 19 9 | targetSdkVersion rootProject.ext.targetSdkVersion 10 | ndk { 11 | abiFilters "armeabi-v7a", "arm64-v8a" 12 | } 13 | } 14 | 15 | buildTypes { 16 | release { 17 | minifyEnabled false 18 | proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' 19 | } 20 | } 21 | namespace 'com.tencent.mlvb.pictureinpicture' 22 | 23 | } 24 | 25 | dependencies { 26 | implementation fileTree(dir: "libs", include: ["*.jar"]) 27 | implementation rootProject.ext.liteavSdk 28 | implementation 'androidx.appcompat:appcompat:1.1.0' 29 | implementation project(':Debug') 30 | implementation project(':Common') 31 | implementation 'com.google.android.material:material:1.12.0' 32 | implementation 'androidx.activity:activity:1.9.0' 33 | implementation 'androidx.constraintlayout:constraintlayout:2.1.4' 34 | } -------------------------------------------------------------------------------- /MLVB-API-Example/Basic/LivePK/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | live 3 | 开始PK 4 | MLVB PK互动 5 | 请输入直播间名称 6 | 请输入用户名 7 | 请选择角色 8 | 主播 9 | 观众 10 | RTC推流 11 | 停止PK 12 | 混流失败 13 | 快直播拉流 14 | 连麦PK场景实现:\n1、主播A\n1.1、主播A开始推流\n1.2、主播A的观众拉主播A的流\n\n2、主播B\n2.1、主播B开始推流\n2.2、主播B的观众拉主播B的流\n\n3、主播A连麦主播B\n3.1、主播A拉主播B的流\n3.2、主播A与主播B混流到主播A\n3.3、主播B拉主播A的流\n3.4、主播B与主播A混流到主播B 15 | 下一步 16 | 确定 17 | 请输入对方的直播间名称 18 | 目前仅中国大陆支持,其他地区正持续开发中。 19 | 20 | -------------------------------------------------------------------------------- /MLVB-API-Example/Advanced/CustomVideoCapture/src/main/java/com/tencent/mlvb/customvideocapture/helper/basic/Frame.java: -------------------------------------------------------------------------------- 1 | package com.tencent.mlvb.customvideocapture.helper.basic; 2 | 3 | import android.media.MediaCodec; 4 | import android.media.MediaCodec.BufferInfo; 5 | 6 | import java.nio.ByteBuffer; 7 | 8 | public class Frame { 9 | /** 10 | * The data contained in this frame, this buffer may be returned from {@link MediaCodec#getInputBuffers()}, 11 | * Needs to be returned to MediaCodec after use is completed. 12 | */ 13 | public ByteBuffer buffer; 14 | 15 | /** 16 | * If {@link Frame#buffer} is returned from another module, this member records its index. 17 | */ 18 | public int bufferIndex; 19 | 20 | /** 21 | * Identifies which byte in the cache starts to be valid data. 22 | */ 23 | public int offset; 24 | 25 | /** 26 | * Identifies the length of valid data in the cache. 27 | */ 28 | public int size; 29 | 30 | /** 31 | * The display time corresponding to this data 32 | */ 33 | public long presentationTimeUs; 34 | 35 | /** 36 | * Some flags, see {@link BufferInfo#flags} for details 37 | */ 38 | public int flags; 39 | } 40 | -------------------------------------------------------------------------------- /MLVB-API-Example/Basic/LivePushScreen/src/main/res/values-en/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | live 3 | Publish from Screen 4 | MLVB Publishing (Screen) 5 | Stream Id 6 | Audio Quality 7 | Default 8 | Speech 9 | Music 10 | LVB Playback 11 | Tencent Cloud’s proprietary RTC protocol features lower latency and better adaptability to poor network conditions when compared with traditional live streaming protocols, and can be used worldwide. For details, visit https://cloud.tencent.com/document/product/454/56595 Currently only supported in China, other regions are continuing to develop. 12 | RTC Publishing 13 | Stop 14 | 15 | -------------------------------------------------------------------------------- /MLVB-API-Example/App/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | MLVB-API-Example 3 | 腾讯云MLVB API Example 4 | 基础功能 5 | 摄像头推流 6 | 包含rtmp推流,rtc推流 7 | 录屏推流 8 | 直播拉流 9 | 包含标准协议rtmp,flv,hls拉流和rtc拉流功能 10 | 快直播拉流 11 | 连麦互动 12 | PK互动 13 | 进阶功能 14 | 动态切换渲染组件 15 | 自定义视频采集 16 | 第三方美颜 17 | RTC连麦+超低延时播放 18 | 画中画功能 19 | 快直播自适应播放 20 | HLS自适应播放 21 | 直播时移 22 | 新直播时移雪碧图 23 | 24 | -------------------------------------------------------------------------------- /MLVB-API-Example/Advanced/ThirdBeauty/src/main/java/com/tencent/mlvb/thirdbeauty/ThirdBeautyEntranceActivity.java: -------------------------------------------------------------------------------- 1 | package com.tencent.mlvb.thirdbeauty; 2 | 3 | import androidx.appcompat.app.AppCompatActivity; 4 | 5 | import android.content.Intent; 6 | import android.os.Bundle; 7 | import android.view.View; 8 | 9 | public class ThirdBeautyEntranceActivity extends AppCompatActivity { 10 | 11 | @Override 12 | protected void onCreate(Bundle savedInstanceState) { 13 | super.onCreate(savedInstanceState); 14 | setContentView(R.layout.activity_third_beauty_entrance); 15 | getSupportActionBar().hide(); 16 | 17 | findViewById(R.id.ll_third_beauty_tencent_effect).setOnClickListener(new View.OnClickListener() { 18 | @Override 19 | public void onClick(View view) { 20 | Intent intent = new Intent(ThirdBeautyEntranceActivity.this, ThirdBeautyTencentEffectActivity.class); 21 | startActivity(intent); 22 | } 23 | }); 24 | findViewById(R.id.ll_third_beauty_faceunity).setOnClickListener(new View.OnClickListener() { 25 | @Override 26 | public void onClick(View view) { 27 | Intent intent = new Intent(ThirdBeautyEntranceActivity.this, ThirdBeautyFaceUnityActivity.class); 28 | startActivity(intent); 29 | } 30 | }); 31 | } 32 | } -------------------------------------------------------------------------------- /MLVB-API-Example/Advanced/RTCPushAndPlay/src/main/res/values-en/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | live 3 | Co-anchor 4 | RTC Playback 5 | RTC Co-anchoring + Ultra-low-latency Playback 6 | Stream Id 7 | Role 8 | Anchor 9 | Audience 10 | RTC Publishing 11 | Stop 12 | Stop 13 | RTC co-anchoring + ultra-low-latency playback: \n1. Anchor A\n1.1 Anchor A starts publishing streams.\n1.2 Anchor A’s audience play anchor A’s streams.\n\n2. Anchor B\n2.1 Anchor B starts publishing streams.\n2.2 Anchor B’s audience play anchor B’s streams.\n\n3. Co-anchoring\n3.1 Anchor A plays anchor B’s streams.\n3.2 Anchor B plays anchor A’s streams.\n\n4. Audience\n4.1 Anchor A’s audience play anchor B’s streams.\n4.2 Anchor B’s audience play anchor A’s streams.\n\nCurrently only supported in China, other regions are continuing to develop. 14 | 15 | 16 | -------------------------------------------------------------------------------- /MLVB-API-Example/Basic/LiveLink/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | live 3 | 开始推流 4 | 开始拉流 5 | 确定 6 | 开始连麦 7 | 接受连麦 8 | MLVB 连麦互动 9 | 请输入直播间名称 10 | 请输入用户名 11 | 请选择角色 12 | 主播 13 | 观众 14 | RTC推流 15 | 停止连麦 16 | 混流失败 17 | 快直播拉流 18 | 请输入观众的用户名 19 | 连麦互动场景实现:\n1、主播A\n1.1、主播A开始推流\n1.2、主播A的观众拉主播A的流\n1.3、主播A的连麦观众B拉主播A的流\n\n2、连麦观众B\n2.1、连麦观众B输入自己的推流streamId和userId\n2.2、连麦观众B开始停止快直播拉流\n2.3、连麦观众B开始拉主播A的RTC流\n2.4、连麦观众B开始推流\n\n3、主播A连麦连麦观众B\n3.1、主播A与连麦观众B混流到主播A 20 | 下一步 21 | 目前仅中国大陆支持,其他地区正持续开发中。 22 | 23 | -------------------------------------------------------------------------------- /MLVB-API-Example/Advanced/CustomVideoCapture/src/main/java/com/tencent/mlvb/customvideocapture/helper/render/opengl/Rotation.java: -------------------------------------------------------------------------------- 1 | package com.tencent.mlvb.customvideocapture.helper.render.opengl; 2 | 3 | public enum Rotation { 4 | NORMAL, ROTATION_90, ROTATION_180, ROTATION_270; 5 | 6 | /** 7 | * Create a Rotation from an integer. Needs to be either 0, 90, 180 or 270. 8 | * 9 | * @param rotation 0, 90, 180 or 270 10 | * @return Rotation object 11 | */ 12 | public static Rotation fromInt(int rotation) { 13 | switch (rotation) { 14 | case 0: 15 | return NORMAL; 16 | case 90: 17 | return ROTATION_90; 18 | case 180: 19 | return ROTATION_180; 20 | case 270: 21 | return ROTATION_270; 22 | case 360: 23 | return NORMAL; 24 | default: 25 | return NORMAL; 26 | } 27 | } 28 | 29 | /** 30 | * Retrieves the int representation of the Rotation. 31 | * 32 | * @return 0, 90, 180 or 270 33 | */ 34 | public int asInt() { 35 | switch (this) { 36 | case NORMAL: 37 | return 0; 38 | case ROTATION_90: 39 | return 90; 40 | case ROTATION_180: 41 | return 180; 42 | case ROTATION_270: 43 | return 270; 44 | default: 45 | return 0; 46 | } 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /MLVB-API-Example/Basic/LivePK/src/main/res/layout/livepk_activity_live_pk_audience.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 14 | 15 | 18 | 19 | 26 | 27 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /MLVB-API-Example/App/src/main/res/values-en/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | MLVB-API-Example 3 | Tencent Cloud MLVB API Example 4 | Basic Features 5 | Publishing from Camera 6 | Including rtmp push stream, rtc push stream function 7 | Publishing from Screen 8 | Playback 9 | Including standard protocols rtmp,flv,hls streaming and rtc streaming 10 | Webrtc Playback 11 | Co-anchoring 12 | Competition 13 | Advanced Features 14 | Dynamically Switching Rendering Control 15 | Custom Video Capturing 16 | Third-Party Beauty Filters 17 | RTC Co-anchoring + Ultra-low-latency Playback 18 | Picture In Picture 19 | Webrtc Auto Bitrate 20 | HLS Auto Bitrate 21 | Time Shift 22 | 23 | -------------------------------------------------------------------------------- /MLVB-API-Example/Basic/LivePK/src/main/res/values-en/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | live 3 | Compete 4 | Competition 5 | Stream Id 6 | User Id 7 | Role 8 | Anchor 9 | Audience 10 | RTC Publishing 11 | End 12 | Failed to mix streams. 13 | LVB Playback 14 | Competition: \n1. Anchor A\n1.1 Anchor A starts publishing streams.\n1.2 Anchor A’s audience play anchor A’s streams.\n\n2. Anchor B\n2.1 Anchor B starts publishing streams.\n2.2 Anchor B’s audience play anchor B’s streams.\n\n3. Co-anchoring\n3.1 Anchor A plays anchor B’s streams.\n3.2 Anchor B’s streams are mixed into anchor A’s.\n3.3 Anchor B plays anchor A’s streams.\n3.4 Anchor A’s streams are mixed into anchor B’s. 15 | Next 16 | OK 17 | Please Input Other StreamId 18 | Currently only supported in China, other regions are continuing to develop. 19 | 20 | 21 | -------------------------------------------------------------------------------- /MLVB-API-Example/Basic/LivePushCamera/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | live 3 | 请确保正在推流中 4 | 前摄开启 5 | 前后摄均开启 6 | 前后摄均关闭 7 | 关闭麦克风 8 | 打开麦克风 9 | 请输入streamId 10 | MLVB 摄像头推流 11 | 音频设置 12 | 视频设置 13 | 分辨率 14 | 本地预览旋转角度 15 | 本地预览镜像 16 | MLVB 摄像头推流 17 | RTC推流为腾讯云自研实时音视频协议,相比传统的直播协议,具备如下优势:超低延迟、弱网超强抗性、支持全球范围,更多细节详见:https://cloud.tencent.com/document/product/454/56592 目前仅中国大陆支持,其他地区正持续开发中。 18 | 请选择音频质量 19 | 默认 20 | 语音 21 | 音乐 22 | 标准直播推流 23 | RTC推流(推荐) 24 | 25 | -------------------------------------------------------------------------------- /MLVB-API-Example/Basic/LivePushScreen/src/main/res/layout/livepushscreen_activity_push_screen.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 10 | 11 | 18 | 19 | 27 | 28 | 29 | 30 |