@@ -6,8 +6,8 @@ import androidx.media3.exoplayer.ExoPlayer
66import com.novage.p2pml.Constants.CORE_FILE_URL
77import com.novage.p2pml.Constants.CUSTOM_FILE_URL
88import com.novage.p2pml.Constants.QueryParams.MANIFEST
9- import com.novage.p2pml.interop.OnErrorCallback
10- import com.novage.p2pml.interop.P2PReadyCallback
9+ import com.novage.p2pml.interop.OnP2PReadyCallback
10+ import com.novage.p2pml.interop.OnP2PReadyErrorCallback
1111import com.novage.p2pml.parser.HlsManifestParser
1212import com.novage.p2pml.providers.ExoPlayerPlaybackProvider
1313import com.novage.p2pml.providers.ExternalPlaybackProvider
@@ -26,8 +26,8 @@ import kotlinx.coroutines.runBlocking
2626/* *
2727 * `P2PMediaLoader` facilitates peer-to-peer media streaming within an Android application.
2828 *
29- * @param readyCallback Callback invoked when the P2P engine is ready for use
30- * @param onReadyErrorCallback Callback invoked when an error occurs
29+ * @param onP2PReadyCallback Callback invoked when the P2P engine is ready for use
30+ * @param onP2PReadyErrorCallback Callback invoked when an error occurs
3131 * @param coreConfigJson Sets core P2P configurations. See [P2PML Core Config](https://novage.github.io/p2p-media-loader/docs/v2.1.0/types/p2p_media_loader_core.CoreConfig.html)
3232 * JSON string with core configurations. Default: empty string (uses default config)
3333 *
@@ -40,22 +40,22 @@ import kotlinx.coroutines.runBlocking
4040 */
4141@UnstableApi
4242class P2PMediaLoader (
43- private val readyCallback : P2PReadyCallback ,
44- private val onReadyErrorCallback : OnErrorCallback ,
43+ private val onP2PReadyCallback : OnP2PReadyCallback ,
44+ private val onP2PReadyErrorCallback : OnP2PReadyErrorCallback ,
4545 private val coreConfigJson : String = " " ,
4646 private val serverPort : Int = Constants .DEFAULT_SERVER_PORT ,
4747 private val customJavaScriptInterfaces : List <Pair <String , Any >> = emptyList(),
4848 private val customEngineImplementationPath : String? = null ,
4949) {
5050 // Second constructor for Java compatibility
5151 constructor (
52- readyCallback : P2PReadyCallback ,
53- onReadyErrorCallback : OnErrorCallback ,
52+ onP2PReadyCallback : OnP2PReadyCallback ,
53+ onP2PReadyErrorCallback : OnP2PReadyErrorCallback ,
5454 serverPort: Int ,
5555 coreConfigJson: String ,
5656 ) : this (
57- readyCallback ,
58- onReadyErrorCallback ,
57+ onP2PReadyCallback ,
58+ onP2PReadyErrorCallback ,
5959 coreConfigJson,
6060 serverPort,
6161 emptyList(),
@@ -139,6 +139,7 @@ class P2PMediaLoader(
139139 engineStateManager,
140140 customEngineImplementationPath,
141141 onServerStarted = { onServerStarted() },
142+ onServerError = { onP2PReadyErrorCallback.onError(it) },
142143 onManifestChanged = { onManifestChanged() },
143144 ).apply { start(serverPort) }
144145 }
@@ -220,9 +221,9 @@ class P2PMediaLoader(
220221 webViewManager!! .initCoreEngine(coreConfigJson)
221222
222223 try {
223- readyCallback .onReady()
224+ onP2PReadyCallback .onReady()
224225 } catch (e: Exception ) {
225- onReadyErrorCallback .onError(e.message ? : " Unknown error" )
226+ onP2PReadyErrorCallback .onError(e.message ? : " Unknown error" )
226227 }
227228 }
228229 }
@@ -235,6 +236,10 @@ class P2PMediaLoader(
235236 Utils .getUrl(serverPort, CORE_FILE_URL )
236237 }
237238
238- webViewManager!! .loadWebView(urlPath)
239+ try {
240+ webViewManager!! .loadWebView(urlPath)
241+ } catch (e: Exception ) {
242+ onP2PReadyErrorCallback.onError(e.message ? : " Unknown error" )
243+ }
239244 }
240245}
0 commit comments