Spanish App cierra a los 3 minutos

dtar

New Member
Buenos dias, estoy haciendo un reproductor de streaming (radio online) con B4A
Estoy utilizando Exoplayer y tambien probé con MediaPlayerStream
y con los dos tengo el mismo problema.
El audio se empieza a reproducir, hasta alli todo bien.
Pero cuando la aplicacion pasa a segundo plano (abro otra) a los 3 minutos se corta la reproduccion hasta que vuelvo a poner en primer plano la APP
Alguna idea de que puede ser? Muchas gracias.-
 

drgottjr

Expert
Licensed User
Longtime User
usa un "servicio". son faciles de implementar. yo escucho exoplayer en segundo plano todo el dia, incluso con la pantalla cerrada en el bolsillo para evitar toques inadvertidos. ánimo.
 

musaso

Active Member
Licensed User
Longtime User
Buenos dias, estoy haciendo un reproductor de streaming (radio online) con B4A
Estoy utilizando Exoplayer y tambien probé con MediaPlayerStream
y con los dos tengo el mismo problema.
El audio se empieza a reproducir, hasta alli todo bien.
Pero cuando la aplicacion pasa a segundo plano (abro otra) a los 3 minutos se corta la reproduccion hasta que vuelvo a poner en primer plano la APP
Alguna idea de que puede ser? Muchas gracias.-
B4X:
Yo lo tengo asi :
Tengo un servicio que se llama srvExoPlayer

'---------------- Modulo Main -------------------'

Al abrir la emisora :

Sub AbrirEmisora
    StartService(srvExoPlayer)'iniciar servicio
    CallSubDelayed(srvExoPlayer,"Iniciar_musica")'abrir exoplayer
End Sub

'---------------- Modulo srvExoPlayer -------------------'

Sub Process_Globals
    Public Exo1 As SimpleExoPlayer
    Private ListaSources As List
    Private NotiNB6 As NB6 ''Notificacion NB6  'https://www.b4x.com/android/forum/threads/91819/#content
End Sub

Sub Service_Create
    Service.AutomaticForegroundMode = Service.AUTOMATIC_FOREGROUND_NEVER
    Exo1.Initialize("mp1")'tu exoplayer
    ListaSources.Initialize'lista con links de emisora
End Sub

Sub Service_Start (StartingIntent As Intent)
    StartServiceAt(Me, DateTime.Now + 30 * DateTime.TicksPerMinute, True)'reiniciar cada x
End Sub

Public Sub Iniciar_musica
    ListaSources.Clear'lista con links de emisora
    Dim url As String = '...... emisora que quieres
    If url.Contains("m3u8") Then
        ListaSources.Add(Exo1.CreateHLSSource(url))
    Else   
        ListaSources.Add(Exo1.CreateUriSource(url))
    End If
    Exo1.Prepare(Exo1.CreateListSource(ListaSources))
    Exo1.Play
End Sub

Sub mp1_Ready
    Exo1.Play'iniciar exoplayer
    PonerNotificacion'poner notificacion
End Sub

Sub CreateNotificationNB6 As Notification
    Dim texto As String = '........
    Dim bm As Bitmap = '...........
    NotiNB6.Initialize("default", Application.LabelName, "DEFAULT").SmallIcon(bm)
    NotiNB6.SetDefaults(False, False, False)
    NotiNB6.Color(Colors.Blue)
    NotiNB6.Colorized(True)
    NotiNB6.LargeIcon(bm)
    If Version >=25 Then NotiNB6.MediaStyle
    
    Return NotiNB6.Build("Musica" , texto, "tag", Main)
End Sub
 

drgottjr

Expert
Licensed User
Longtime User
solucionado o qué? no he probado tu codigo, pero parece en orden.
 

dtar

New Member
Todavia no pude probar tu codigo, voy a tratar de hacerlo hasta el fin de semana y les comento como me funcionó. Muchas gracias.-
 

musaso

Active Member
Licensed User
Longtime User
Se me olvidaba, al parar la reproducion ...

B4X:
Sub BotonParar_Click
    srvExoPlayer.Exo1.Pause
    StopService(srvExoPlayer)
End Sub
 
Top