Edited at

Android Mediaplayerにユーザーエージェントを付与する。


概要

もしかしたらそれほど需要はないかもしれないけど半日探して情報がなかった為忘備録的に投稿。


普通はMediaplayerにsetDataSourceでデータのパスを渡す。

こんな感じに。

mediaPlayer.setDataSource(url);

でもこれだとユーザエージェント認証付きのサーバーに保存してあるファイルにアクセスできない。


答え

Uri uri = Uri.parse(url); //まずURI変換する

Map<String,String> map =new HashMap<String,String>(){
{
  put("User-Agent", "originalagent"); }//Mapでヘッダー情報を作る
};
mediaPlayer.setDataSource(this,uri,map);//引数1Context 引数2 URI 引数3 ヘッダー情報

な感じでsetDataSourceしてやるとユーザーエージェント付きでアクセスしてくれる。