AgoraIO-Extensions / react-native-agora

React Native around the Agora RTC SDKs for Android and iOS agora
https://www.agora.io
MIT License
625 stars 227 forks source link

How to use only the voice-sdk and not the full-sdk? #695

Closed vishaledkey closed 12 months ago

vishaledkey commented 1 year ago

I'm using the Agora react-native SDK in my project and I'm only using the audio-related features. I followed this documentation to implement it. But this implements everything I don't need, and the app size has increased from 50 MB to 270 MB. I followed this documentation for app size optimization, It says to use the Audio-SDK but it seems like the implementation for Audio and Video is the same. How can I use the specific SDK from the library and reduce the app size for both iOS and Android?

vishaledkey commented 1 year ago

Couldn't find the right way of just using the voice-sdk, so I excluded the modules that I felt were not important or in use. I made the below-mentioned changes in the Android app level gradle file:

android{
packagingOptions {
        //unused Agora sdk modules
        exclude 'lib/*/libagora_ai_noise_suppression_extension.so'
        exclude 'lib/*/libagora_audio_beauty_extension.so'
        exclude 'lib/*/libagora_clear_vision_extension.so'
        exclude 'lib/*/libagora_content_inspect_extension.so'
        exclude 'lib/*/libagora_screen_capture_extension.so'
        exclude 'lib/*/AgoraScreenShareExtension.so'
        exclude 'lib/*/libagora_segmentation_extension.so'
        exclude 'lib/*/libagora_spatial_audio_extension.so'
        exclude 'lib/*/libagora_pvc_extension.so'
        exclude 'lib/*/libagora_super_resolution_extension.so'
        exclude 'lib/*/libagora_udrm3_extension.so'
        exclude 'lib/*/libagora_drm_loader_extension.so'
        exclude 'lib/*/libagora_face_detection_extension.so'
        exclude 'lib/*/libagora_video_quality_analyzer_extension.so'
        exclude 'lib/*/libagora_face_detection_extension.so'
        exclude 'lib/*/libagora_segmentation_extension.so'
        exclude 'lib/*/libagora_face_detection_extension.so'
        exclude 'lib/*/libagora_super_resolution_extension.so'
        exclude 'lib/*/libagora_screen_capture_extension.so'
        exclude 'lib/*/libagora_video_quality_analyzer_extension.so'
    }
}
LichKing-2234 commented 1 year ago

you can use https://www.npmjs.com/package/patch-package and modify this line to voice https://github.com/AgoraIO-Extensions/react-native-agora/blob/main/android/build.gradle#L83

lakshmankatari commented 1 year ago

you can use https://www.npmjs.com/package/patch-package and modify this line to voice https://github.com/AgoraIO-Extensions/react-native-agora/blob/main/android/build.gradle#L83

screen share showing infinite loop on host end also not showing anything on user end can you help

LichKing-2234 commented 1 year ago

you can use https://www.npmjs.com/package/patch-package and modify this line to voice https://github.com/AgoraIO-Extensions/react-native-agora/blob/main/android/build.gradle#L83

screen share showing infinite loop on host end also not showing anything on user end can you help

It is normal, pls refer to https://en.wikipedia.org/wiki/Droste_effect

stale[bot] commented 1 year ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

vishaledkey commented 12 months ago

Closing this issue as the solution is already provided and the approach I took is also working fine for me.