Sub Class_Globals
Private Root As B4XView
Private xui As XUI
Private AudioFocusRequest As JavaObject
Private AudioManager As JavaObject
End Sub
Public Sub Initialize
' B4XPages.GetManager.LogEvents = True
End Sub
'This event will be called once, before the page becomes visible.
Private Sub B4XPage_Created (Root1 As B4XView)
Root = Root1
Root.LoadLayout("MainPage")
Log(CreateAudioFocusRequest("AUDIOFOCUS_GAIN"))
End Sub
Private Sub CreateAudioFocusRequest (RequestType As String) As Boolean
Dim AudioManagerStatic As JavaObject
AudioManagerStatic.InitializeStatic("android.media.AudioManager")
Dim ctxt As JavaObject
ctxt.InitializeContext
AudioManager = ctxt.RunMethod("getSystemService", Array("audio"))
Dim event As Object = AudioManager.CreateEventFromUI("android.media.AudioManager.OnAudioFocusChangeListener", "audio", Null)
Dim builder As JavaObject
builder.InitializeNewInstance("android.media.AudioFocusRequest.Builder", Array(AudioManagerStatic.GetField(RequestType)))
builder.RunMethod("setOnAudioFocusChangeListener", Array(event))
AudioFocusRequest = builder.RunMethod("build", Null)
Dim res As Int = AudioManager.RunMethod("requestAudioFocus", Array(AudioFocusRequest))
Return res = 1 'granted
End Sub
Sub audio_Event (MethodName As String, Args() As Object) As Object
Log(MethodName)
Return Null
End Sub
Private Sub AbandonAudioFocus
If AudioFocusRequest.IsInitialized Then
AudioManager.RunMethod("abandonAudioFocusRequest", Array(AudioFocusRequest))
End If
End Sub
Private Sub Button1_Click
AbandonAudioFocus
End Sub