Spanish Porque tarda en cargar el Streamin

Hola amigos soy nuevo en este lenguaje vengo del VB6, Estoy haciendo una sencilla aplicacion para poder reproducir un Stream. Pero lo que pasa es que tarda como 20 Segundos para reproducir.

Mi código es esta.

B4X:
Sub Process_Globals
    Dim mp As MediaPlayerStream
End Sub

Sub Globals
    Private Button1 As Button
    Private Button2 As Button
End Sub

Sub Activity_Create(FirstTime As Boolean)
  
    Activity.LoadLayout("main")
    
End Sub

Sub mp_StreamReady
  Log("starts playing")
  mp.Play
End Sub

Sub mp_StreamError (ErrorCode As String, ExtraData As Int)
  Log("Error: " & ErrorCode & ", " & ExtraData)
  ToastMessageShow("Error: " & ErrorCode & ", " & ExtraData, True)
End Sub

Sub mp_StreamBuffer(Percentage As Int)
  Log(Percentage)
End Sub

Sub Button1_Click

    mp.Initialize("mp")
    mp.Load("http://50.22.219.97:27881") ' Este es donde esta el strem
  
End Sub

Sub Button2_Click
    mp.Stop
End Sub
 

bgsoft

Well-Known Member
Licensed User
Longtime User
Hola:

He entrado en la web y me dice: "Stream is up at 96 kbps with 0 of 5000 listeners" , es muy poca velocidad para tantos oyentes, asi que el problema lo mas seguro es que esté ahi.

Por otro lado cambia algo el programa y pon en el Create los:
B4X:
    mp.Initialize("mp")
    mp.Load("http://50.22.219.97:27881") ' Este es donde esta el strem

asi empezaras a descargar nada mas entrar, luego en el boton 1 puedes poner el play, pones en el
mp_StreamReady una variable que te diga que se ha descargado y haces el play cuando esta variable este a verdadero (por ejemplo)

Saludos
 
Gracias por responder, Lo que pasa es que si pongo para descargar al entrar a veces el sistema te dice que la app se a colgado y pregunta si esperar o cerrar. Eso queda feo en un sistema.

Hay otra manera de reproducir esto?
 

clarionero

Active Member
Licensed User
Longtime User
Hola. Ese mensaje te lo muestra Android porque estas utilizando el thread principal de la aplicación para hacer todo. Prueba a hacer la carga de datos en un thread secundario.

Rubén
 

bgsoft

Well-Known Member
Licensed User
Longtime User
Hola

El problema es que tal como tienes (o tenias) el código, si sales y vuelves a entrar vuelves a llamar y puede que se te cuelgue por ese motivo, inicializa mejor asi:

B4X:
If FirstTime Then
    mp.Initialize("mp")
End If

Si aun asi no te funciona, lo tendras que pasar a un servicio para que si sales o entras en la aplicacion no se cuelgue.
Por otro lado puedes controlar los errores con el evento StreamError

Saludos
 

bgsoft

Well-Known Member
Licensed User
Longtime User
Hola, clarionero, algun ejemplo de lo que dices es que soy un poco nuevo en esto.
bgsoft tambien lo puse asi pero igual tarda unos 20 segundos.

Yo estoy siguiendo este ejemplo:

https://www.b4x.com/android/help/audio.html#audiostreamer

Hola:

Habeis probado con otro sitio? ya comenté que la velocidad de ese sitio es muy lenta para tantos oyentes, el código no tiene ningún misterio, asi que si tarda es por el sitio o los datos vuestros que son lentos. Esta mañana probé y el servidor no iba.

He echo un ejemplo rápido, a mi me tarda en bajar entre 200/350 milisegundos, probarlo y a ver que os tarda a vosotros

Saludos
 

Attachments

  • AudioStream.zip
    397.4 KB · Views: 290

clarionero

Active Member
Licensed User
Longtime User
Hola, clarionero, algun ejemplo de lo que dices es que soy un poco nuevo en esto.
bgsoft tambien lo puse asi pero igual tarda unos 20 segundos.

Yo estoy siguiendo este ejemplo:

https://www.b4x.com/android/help/audio.html#audiostreamer

Prueba a usar la linreria https://www.b4x.com/android/forum/threads/threading-library.6775/#content para usar otros threads.

Es sencillo. Defines una funcion que tiene el código que qiuieres ejecutar en segundo plano y lo llamas con la libreria. Mira los ejemplos.


Rubén
 
Top