2012-01-19 8 views
1

私は以下のコードを持っています。デフォルトの音楽プレーヤーを使用して演奏するとき、ダウンローダされたMP3ファイルにアーティスト、タイトルなどのプロパティ(メタデータ)がないことを除いて、すべてうまく動作します。アンドロイドブラウザを使用してサイトから直接同じmp3ファイルをダウンロードし、デフォルトの音楽プレーヤーを使用して再生しようとすると、すべてのメタデータは元の状態(つまり、音楽プレーヤーの表示タイトル、アーティストなど)になります。タイトル、アーティストなどのメタデータ/プロパティを含むmp3をダウンロード

@Override 
    protected String doInBackground(String... aurl) { 
     int count; 

     i = Integer.parseInt(aurl[0]); 
     try { 
      sura = "abc.mp3"; 
      String addr = "http://www.xyzabc.com/" + sura; 

      URL url = new URL(addr); 
      HttpURLConnection conexion = (HttpURLConnection) url.openConnection(); 
       conexion.setRequestMethod("GET"); 
       conexion.setDoOutput(true); 
      conexion.connect(); 

      int lenghtOfFile = conexion.getContentLength(); 

      InputStream input = new BufferedInputStream(url.openStream()); 
      File file = new File(rootDir + "/mysite/" + sura); 
      OutputStream output = new FileOutputStream(file); 

      byte data[] = new byte[1024]; 

      long total = 0; 

      while ((count = input.read(data)) != -1 & run == true) { 
       total += count; 
       publishProgress("" + (int) ((total * 100)/lenghtOfFile)); 
       output.write(data, 0, count); 
      } 

      output.flush(); 
      output.close(); 
      input.close(); 

     } catch (Exception e) { 
     } 

     return null; 
    } 

答えて

1

システムコンテンツプロバイダは、ダウンロードが完了するとすぐには更新されませんでした。 エミュレータを再起動するか、sdカードをインストール/アンインストールして、コンテンツプロバイダが更新するかどうかを確認してください。

URIがMediaStore.Audio.Media.EXTERNAL_CONTENT_URIであり、あなたが(すべてのMediaStore.Audio.Mediaに。*)クエリMediaStore.Audio.Media.DATA, MediaStore.Audio.Media.TITLE, MediaStore.Audio.Media.COMPOSER, MediaStore.Audio.Media.ALBUM, MediaStore.Audio.Media.ARTISTなどによる詳細情報を取得することができ

あなたはすぐに情報を取得したい場合は、多分あなたは、コンテンツプロバイダのマニュアルを更新する必要があります自分で。

+0

ありがとうJohnCookie。私はmp3ファイルをimmediatlyデフォルトのmp3プレーヤーを使用して再生し、それはタイトル、アーティストなどを表示しません。私は電話でこれを試してみました。 (エミュレータではありません)。しかし、私はアンドロイドブラウザを使ってダウンロードした後に曲を演奏しようとしましたが、タイトル、アーティストなどを表示します。 – RiyasMd

+0

システムデータベースは細部を一度に更新してはいけません。 System MediaPlayer AppはURIを介して情報を取得し、手動で更新してみますか? (私は確信していません、私はちょうど私たちがcontentProviderによってメディアの詳細を取得できることを知っていて、デバイスが再起動したり、SDカードがリロードされたときに自身を更新します) – JohnCookie

関連する問題