我正在尝试将标头添加到我的setDataSource()方法中。有什么办法可以看到发送的请求本身吗?我需要这样做,因为我想确认setDataSource方法生成的url是否正确形成。但是,我没有在MediaPlayer类中看到任何可以帮助我这样做的api。任何方向或解决方案都将非常受欢迎。
答案 0 :(得分:0)
对于非文件媒体源,框架通过MediaHTTPConnection
处理它,这是一个隐藏API。您可以将其字段VERBOSE
更改为true以查看打印的日志。
由于它未导出,我们无法直接使用它。以下代码可能有用,但我不确定它是否有效。在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();
}
您可以参考here查看MediaHTTPConnection
的详细实施。