exoplyer dev suggests this code:
[CODE lang="b4x" title="Customizing server interaction"]DataSource.Factory dataSourceFactory = () -> {
HttpDataSource dataSource = httpDataSourceFactory.createDataSource();
// Set a custom authentication request header.
dataSource.setRequestProperty("Header", "Value");
return dataSource;
};
ExoPlayer player = new ExoPlayer.Builder(context)
.setMediaSourceFactory(
new DefaultMediaSourceFactory(context)
.setDataSourceFactory(dataSourceFactory))
.build();[/CODE]
which may be written in B4A like this:
[CODE lang="b4x" highlight="15"]Sub headers As JavaObject
Dim factory As JavaObject
factory.InitializeNewInstance("com.google.android.exoplayer2.upstream.DefaultHttpDataSource.Factory" , Null)
Dim jo As JavaObject
jo.InitializeNewInstance("com.google.android.exoplayer2.upstream.DefaultHttpDataSource.Factory" , Null)
jo = factory.RunMethodJO("createDataSource" , Null)
jo.RunMethod("setRequestProperty", Array ("X-Android-Package" , "com.myPackage.name"))
jo.RunMethod("setRequestProperty" , Array ("X-Android-Cert" , "9778F0EC53DD4907768B881838715DCC8BBB6E73"))
Return jo
End Sub
Sub CreateNativePlayer As Object
Dim ctxt As JavaObject
ctxt.InitializeContext
mediafactory.InitializeNewInstance("com.google.android.exoplayer2.source.DefaultMediaSourceFactory" , Array (headers))
'mediafactory.InitializeNewInstance("com.google.android.exoplayer2.source.DefaultMediaSourceFactory" , Array (ctxt)).RunMethod("setDataSourceFactory" , Array(headers))
Dim builder As JavaObject
builder.InitializeNewInstance("com.google.android.exoplayer2.SimpleExoPlayer.Builder" , Array(ctxt))
Dim np As JavaObject
np = builder.RunMethodJo("setMediaSourceFactory" , Array(mediafactory)).RunMethod("build" , Null)
Return np
End Sub[/CODE]
But it giving me this error on line 15:
java.lang.RuntimeException: Constructor not found.
I think it's because the parameter should be of type 'DefaultHttpDataSource.Factory' but it receive 'DefaultHttpDataSource'
Anyone could help me with this ?