Salutoni a tutti, vi spiego il problema:
premettendo che sono alle primissime armi con Android, ho creato la mia prima app che permette di ascoltare uno streaming audio Shoutcast, visualizzare i metadata tramite parsing di un url testuale relativo al canale radio, poi permette tramite menù di verificare il palinsesto, mandare una mail all'emittente, controllare la pagina staff e controllare il sito madre dell'app stessa.
L'ho creata basandomi su SDK Android 2.3.3 standard, e sull'emulatore funziona bene.
Ho il mio Vodafone Sonic, non so perchè ma non mi viene riconosciuto dal PC ("driver non trovati per il dispositivo") e di conseguenza non ho potuto fare il testing direttamente sul cell, allora ho dovuto esportare l'apk e installarlo a parte.
L'installazione si conclude correttamente e anche avviando l'app tutto bene... il problema sorge sul click del bottone "play", non si avvia lo streaming e nemmeno si aggiornano i metadata... resta come in attesa e ci rimane sino a che non mi compare un messaggio per terminarla manualmente o attendere.
Vi posto quà sotto il Log, naturalmente è il log legato all'esecuzione dell'app su emulatore, relativo al primo click sul bottone per far partire lo streaming e al successivo click sul medesimo per metterlo in pausa:
codice:
04-04 23:42:18.578: DEBUG/AndroidRuntime(524): >>>>>> AndroidRuntime START com.android.internal.os.RuntimeInit <<<<<<
04-04 23:42:18.578: DEBUG/AndroidRuntime(524): CheckJNI is ON
04-04 23:42:19.028: DEBUG/AndroidRuntime(524): Calling main entry com.android.commands.am.Am
04-04 23:42:19.048: INFO/ActivityManager(61): Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10000000 cmp=net.site50.redpurplelime/.LevelOne4DroidActivity } from pid 524
04-04 23:42:19.098: DEBUG/AndroidRuntime(524): Shutting down VM
04-04 23:42:19.108: DEBUG/dalvikvm(524): GC_CONCURRENT freed 103K, 69% free 319K/1024K, external 0K/0K, paused 1ms+1ms
04-04 23:42:19.108: DEBUG/dalvikvm(524): Debugger has detached; object registry had 1 entries
04-04 23:42:19.828: INFO/ActivityManager(61): Displayed net.site50.redpurplelime/.LevelOne4DroidActivity: +763ms
04-04 23:42:25.548: DEBUG/dalvikvm(133): GC_EXPLICIT freed 48K, 52% free 2834K/5895K, external 4623K/5582K, paused 42ms
04-04 23:42:28.408: INFO/StagefrightPlayer(34): setDataSource('http://66.90.103.76:9174/')
04-04 23:42:28.408: INFO/NuHTTPDataSource(34): connect to 66.90.103.76:9174/ @0
04-04 23:42:29.038: WARN/NuHTTPDataSource(34): Server did not give us the content length!
04-04 23:42:33.228: DEBUG/AudioSink(34): bufferCount (4) is too small and increased to 12
04-04 23:42:33.448: WARN/AudioFlinger(34): write blocked for 76 msecs, 1810 delayed writes, thread 0xc658
04-04 23:42:38.470: WARN/AudioFlinger(34): write blocked for 77 msecs, 1867 delayed writes, thread 0xc658
04-04 23:42:43.540: WARN/AudioFlinger(34): write blocked for 79 msecs, 1929 delayed writes, thread 0xc658
04-04 23:42:48.629: WARN/AudioFlinger(34): write blocked for 72 msecs, 1988 delayed writes, thread 0xc658
04-04 23:42:52.608: INFO/StagefrightPlayer(34): setDataSource('http://66.90.103.76:9174/')
04-04 23:42:52.628: ERROR/MediaPlayer(478): setDataSource called in state 16
04-04 23:42:52.628: WARN/System.err(478): java.lang.IllegalStateException
04-04 23:42:52.628: WARN/System.err(478): at android.media.MediaPlayer.setDataSource(Native Method)
04-04 23:42:52.628: WARN/System.err(478): at net.site50.redpurplelime.LevelOne4DroidActivity.onClick(LevelOne4DroidActivity.java:155)
04-04 23:42:52.628: WARN/System.err(478): at android.view.View.performClick(View.java:2485)
04-04 23:42:52.638: WARN/System.err(478): at android.view.View$PerformClick.run(View.java:9080)
04-04 23:42:52.638: WARN/System.err(478): at android.os.Handler.handleCallback(Handler.java:587)
04-04 23:42:52.638: WARN/System.err(478): at android.os.Handler.dispatchMessage(Handler.java:92)
04-04 23:42:52.638: WARN/System.err(478): at android.os.Looper.loop(Looper.java:123)
04-04 23:42:52.638: WARN/System.err(478): at android.app.ActivityThread.main(ActivityThread.java:3683)
04-04 23:42:52.638: WARN/System.err(478): at java.lang.reflect.Method.invokeNative(Native Method)
04-04 23:42:52.638: WARN/System.err(478): at java.lang.reflect.Method.invoke(Method.java:507)
04-04 23:42:52.638: WARN/System.err(478): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
04-04 23:42:52.638: WARN/System.err(478): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
04-04 23:42:52.638: WARN/System.err(478): at dalvik.system.NativeStart.main(Native Method)
04-04 23:42:52.638: ERROR/MediaPlayer(478): prepareAsync called in state 16
04-04 23:42:52.649: WARN/System.err(478): java.lang.IllegalStateException
04-04 23:42:52.649: WARN/System.err(478): at android.media.MediaPlayer.prepare(Native Method)
04-04 23:42:52.649: WARN/System.err(478): at net.site50.redpurplelime.LevelOne4DroidActivity.onClick(LevelOne4DroidActivity.java:166)
04-04 23:42:52.649: WARN/System.err(478): at android.view.View.performClick(View.java:2485)
04-04 23:42:52.649: WARN/System.err(478): at android.view.View$PerformClick.run(View.java:9080)
04-04 23:42:52.649: WARN/System.err(478): at android.os.Handler.handleCallback(Handler.java:587)
04-04 23:42:52.649: WARN/System.err(478): at android.os.Handler.dispatchMessage(Handler.java:92)
04-04 23:42:52.649: WARN/System.err(478): at android.os.Looper.loop(Looper.java:123)
04-04 23:42:52.649: WARN/System.err(478): at android.app.ActivityThread.main(ActivityThread.java:3683)
04-04 23:42:52.658: WARN/System.err(478): at java.lang.reflect.Method.invokeNative(Native Method)
04-04 23:42:52.658: WARN/System.err(478): at java.lang.reflect.Method.invoke(Method.java:507)
04-04 23:42:52.658: WARN/System.err(478): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
04-04 23:42:52.658: WARN/System.err(478): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
04-04 23:42:52.658: WARN/System.err(478): at dalvik.system.NativeStart.main(Native Method)
Se volete vi copincollo anche tutto il codice della main activity, ditemi voi
Grazie in anticipo per qualsiasi consiglio su come risolvere il problema, voglio capire dove sbaglio