Ben belirledik:Android: Media Player Süre Sayı
mSeekBar.setMax(mp.getDuration()); // 8480
Audiofile tamamlanmasından sonra, ne alıyorum geçerli: Yani
player.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
public void onCompletion(MediaPlayer mediaPlayer)
{
Log.e("onComplete>>", ""+mediaPlayer.getCurrentPosition());
// mediaPlayer.getCurrentPosition() = 8192
Log.e("getDuration", ""+mediaPlayer.getDuration());
// mediaPlayer.getDuration() = 8480
if(mediaPlayer.getCurrentPosition()>=mediaPlayer.getDuration())
{
// Why never get called???
}
}
});
, niye MediaPlayer en Güncel pozisyon toplam ulaşır asla Ses dosyasının süresi?
Ya teknik söyleyebiliriz olarak:
Neden değil?
mediaPlayer.getCurrentPosition()==mediaPlayer.getDuration()
Neden daima
mediaPlayer.getCurrentPosition() < mediaPlayer.getDuration() OnCompletion dinleyici içinde ? Örnek için
:
Ben Player'ı başlatmak için Çal Simge var. Şimdi sembolüne bastığımda Pause Pause simgesine dönüşecektir.
Ses düzeltme ek bilgim var.
Şimdi Ses dosyası tamamen oynatıldığında Oynat Sembol için Pause sembolü dönüştürmek istiyorum. Eğer süresine currentPoision
işaretleyerek tamamlanması bazı görev yapmak gerekirse, hile altında yapabilirsiniz
if(mediaPlayer.getCurrentPosition()>=mediaPlayer.getDuration())
{
// Convert Imagview from Pause to Play
// But never get called
}
Log.i 'çıktısı nedir SO ne yapıyorum denetleme olduğunu ("onComplete >>", "" + mediaPlayer.getCurrentPosition()); Log.i ("getDuration", "" + mediaPlayer.getDuration()); –
Geçerli konum her zaman GetDuration öğesinden daha azdır. –
Hmm .. Aynı konu için bir [sorun iş parçacığı] (https://code.google.com/p/android/issues/detail?id=38627) buldum, ancak henüz bir çözüm veya açıklama bulamadı mı bilmiyorum. ve ayrıca bu (http://www.anddev.org/multimedia-problems-f28/mediaplayer-getcurrentposition-t20032.html). –