So, regarding buffering time means you can make use of adaptive bitrate streaming that is ABR. You can implement adaptive bitrate streaming to automatically adjust the quality of the video based on the user's network conditions and ExoPlayer will support this out of the box with the DASH, HALs and smooth streaming formats will be supported across all the streams and you can make use of pre-buffering which like content before playback starts to ensure a smoother experience, then you can optimize buffer settings, you can make use of network quality detection, you can provide user feedback, you can make use of offline playback and you can also handle error and retries like you can implement error handling and retry logic for network errors, inform the user if the buffering fails and provide options to retry and check their connection. These are some of the strategies.
