2012-05-17 15 views
6

Bir internet akışı oynayan bir Media player hizmetim var, ancak xml arabellek yüzdesinde nasıl görüntüleneceğimi şu anda görüntüliyorum şu anda sorun yaşıyorum Bir mesaj, denediğim tüm yollardan beri bana statik uzun bir numara verdi.Android, Nasıl arabellek% görüntülemek için onBufferingUpdate

@Override 
public void onBufferingUpdate(MediaPlayer mp, int percent) { 
    setBufferPosition(percent * getMusicDuration()/100); 
    myMain.EstadoRadio.setText(" Reproductor \n Buffering... "); 
} 

Eğer EstadoRadio ben akışı tamponlama% gösterilmesini istediğiniz myMain faaliyetinden çalışıyor benim xml metin görünümüdür söyleyebilirim: İşte benim oyuncu hizmetinden kodudur. Yardımlarınız için teşekkürler.

DÜZENLEME: Ben,

myMain.EstadoRadio.setText(" Reproductor \n" + percent + "%"); 

ama benim durumda yüzde

-2147483648 hep: Ben onBufferingUpdate (MediaPlayer mp, int yüzde) dan 'yüzde' kullanıldığı içteki durumları, böyle bir şey gördük o değiştirmek veya güncelleme olmaz neden neden biliyor ya yok, burada benim günlük kediden biraz:

05-17 13:34:37.005: V/MediaPlayer(25382): message received msg=3, ext1=-2147483648, ext2=0 
05-17 13:34:37.005: V/MediaPlayer(25382): buffering -2147483648 
05-17 13:34:37.005: V/MediaPlayer(25382): callback application 
05-17 13:34:37.005: V/MediaPlayer(25382): getDuration 
05-17 13:34:37.015: V/MediaPlayer(25382): back from callback 
05-17 13:34:38.016: V/MediaPlayer(25382): message received msg=3, ext1=-2147483648, ext2=0 
05-17 13:34:38.016: V/MediaPlayer(25382): buffering -2147483648 
05-17 13:34:38.016: V/MediaPlayer(25382): callback application 
05-17 13:34:38.016: V/MediaPlayer(25382): getDuration 
05-17 13:34:38.016: V/MediaPlayer(25382): back from callback 

cevap

3

gördüğünüz sayı imzalı 32 bitlik int min değeridir. Bir tahminde bulunup Android'in bir yüzde getiremediğini ve aslında çöp verisi verdiğinizi söyleyebilirim.

Ben tamponlama geri gerçek değerini alırsa görmek için uzak bir mp3 URL ile internet akışının yerini ediyorum

EDIT (bu kodun kalan suçlu değil doğrulayacağından gibi.): Android belgeleri OnBufferingUpdateListener ile ilgili olarak, aşamalı bir http indirmesi, sonsuz bir internet akışı için kullanım durumu açıklanmaktadır.

Tamponlama yüzdesini görüntüleme yeteneğinin, Android içindeki yerleşik dinleyiciler kullanılarak kullanılabilir olduğuna inanmıyorum. Çatlama olmadan MediaPlayer sınıfının akışınızı oynamaya karar vermesine hangi noktada karar verdiğini bulmak için Android kaynağını açın (ve hatta bir geri arama sağlasa bile), bu sorunun çözüleceğinden şüpheliyim.

Ancak, herhangi birinin sağlayabildiği bir çözüm/çözümle ilgilenirim.

http://en.wikipedia.org/wiki/Integer_(computer_science)

http://developer.android.com/reference/android/media/MediaPlayer.OnBufferingUpdateListener.html

+0

böylece canlı akış bir buferring% elde etmek için bir yol var? – zvzej

+0

@zvzej Cevabımı doğru olduğuna inandıklarım ile güncelledim. Ancak bu hata raporunu [bug 832] (http://code.google.com/p/android/issues/detail?id=832) ilişkilendirmek istiyorum. Üzgünüm, gerçek bir çözüm sunamıyorum. – stevokk

İlgili konular