2016-04-08 5 views
0

Ich versuche, Header zu meiner Methode setDataSource() hinzuzufügen. Kann ich die gesendete Anfrage selbst sehen? Ich muss dies tun, weil ich bestätigen möchte, wenn die von der Methode setDataSource generierte URL korrekt erstellt wurde. Ich sehe jedoch keine API in der MediaPlayer-Klasse, die mir dabei helfen kann. Jede Richtung oder eine Lösung würde am meisten geschätzt werden.Android - Wo kann ich die Anfrage-URL sehen, die generiert wird, wenn setDataSource (..) aufgerufen wird?

Antwort

0

Für nicht-Datei Medienquelle, behandeln das Framework es durch MediaHTTPConnection, die eine ausblenden API ist. Sie können das Feld VERBOSE auf true ändern, um das gedruckte Protokoll anzuzeigen.

Da es nicht exportiert wird, können wir es nicht direkt verwenden. Der folgende Code könnte hilfreich sein, aber ich bin mir nicht sicher, ob es funktioniert. Führen Sie es vor setDataSource().

try { 
    Class mediaServiceClass = Class.forName("android.media.MediaHTTPConnection"); 
    Field field = mediaServiceClass.getDeclaredField("VERBOSE"); 
    field.setAccessible(true); 

    Field modifiersField = Field.class.getDeclaredField("modifiers"); 
    modifiersField.setAccessible(true); 
    modifiersField.setInt(field, field.getModifiers() & ~Modifier.FINAL); 

    field.setBoolean(null, true); 
} catch (ClassNotFoundException e) { 
    e.printStackTrace(); 
} catch (NoSuchFieldException e) { 
    e.printStackTrace(); 
} catch (IllegalAccessException e) { 
    e.printStackTrace(); 
} 

Sie können here siehe die Detail Implementierung von MediaHTTPConnection zu sehen.