2012-05-17 41 views
6

Tôi có dịch vụ Trình phát đa phương tiện phát luồng internet nhưng tôi gặp sự cố về cách hiển thị trong xml tỷ lệ phần trăm đệm, tại thời điểm tôi chỉ hiển thị một thông điệp vì tất cả các cách tôi đã thử nó đã cho tôi một số điện thoại dài. Đây là mã từ dịch vụ nghe nhạc của tôi:Android, Cách hiển thị% đệm từ onBufferingUpdate

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

như bạn có thể nói EstadoRadio là một cái nhìn văn bản trong xml của tôi đó là làm việc kể từ hoạt động myMain nơi tôi muốn hiển thị đệm% của con suối. Cảm ơn sự giúp đỡ của bạn.

EDIT: Tôi đã thấy trường hợp sâu thẳm nơi 'trăm' từ onBufferingUpdate (MediaPlayer mp, int phần trăm) được sử dụng, một cái gì đó như thế này:

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

nhưng trong trường hợp phần trăm của tôi luôn luôn là -2147483648, tôi không biết tại sao, hay tại sao nó không thay đổi hoặc cập nhật, đây là một chút từ mèo đăng nhập của tôi:

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 

Trả lời

3

số bạn đang nhìn thấy là giá trị tối thiểu của một chút int ký 32. Tôi sẽ đoán và nói rằng Android không thể trả lại một tỷ lệ phần trăm và thực tế là cung cấp cho bạn dữ liệu thùng rác.

Tôi muốn thay thế dòng internet của bạn với một URL mp3 từ xa để xem nếu đệm được một giá trị thực lại

EDIT (Vì đây sẽ xác nhận phần còn lại của mã của bạn không phải là để đổ lỗi.): Các tài liệu Android liên quan đến OnBufferingUpdateListener giải thích trường hợp sử dụng để tải xuống http tiến bộ, không phải là luồng internet bất tận.

Tôi không tin rằng khả năng hiển thị phần trăm bộ đệm có sẵn bằng cách sử dụng trình nghe sẵn có trong Android. Nếu không bẻ khóa nguồn Android để tìm ra điểm nào mà lớp MediaPlayer quyết định bắt đầu phát luồng của bạn (và nếu họ thậm chí cung cấp gọi lại), tôi nghi ngờ câu hỏi này sẽ được giải quyết.

Tuy nhiên, tôi sẽ quan tâm đến giải pháp/giải pháp thay thế nếu ai cũng có thể cung cấp.

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

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

+0

như vậy là có một cách để có được một buferring% so với dòng sống? – zvzej

+0

@zvzej Tôi đã cập nhật câu trả lời của mình với những gì tôi tin là chính xác. Tuy nhiên, tôi muốn liên kết báo cáo lỗi này [bug 832] (http://code.google.com/p/android/issues/detail?id=832). Xin lỗi tôi không thể cung cấp một giải pháp thực tế. – stevokk

Các vấn đề liên quan