2012-05-17 9 views
6

से बफरिंग% को प्रदर्शित करने के लिए कैसे करें मेरे पास एक मीडिया प्लेयर सेवा है जो एक इंटरनेट स्ट्रीम चलाती है, लेकिन मुझे अपने एक्सएमएल बफरिंग प्रतिशत में प्रदर्शित करने के तरीके में समस्याएं आ रही हैं, फिलहाल मैं बस प्रदर्शित कर रहा हूं एक संदेश जो मैंने कोशिश की है, मैंने इसे एक स्थिर लंबी संख्या दी है।एंड्रॉइड, BufferingUpdate

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

के रूप में आप बता सकते हैं EstadoRadio मेरी एक्सएमएल में एक पाठ दृश्य है कि myMain गतिविधि से काम जहाँ मैं धारा की प्रतिरोधक% प्रदर्शित करना चाहते हैं: यहाँ मेरी खिलाड़ी सेवा से कोड है। आपकी मदद के लिए धन्यवाद।

संपादित करें:,

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

लेकिन मेरे मामले प्रतिशत में हमेशा होता है -२१४७४८३६४८ मैं: मैं अंतरतम मामलों में जहां onBufferingUpdate (MediaPlayer mp, पूर्णांक प्रतिशत) से 'प्रतिशत' प्रयोग किया जाता है, कुछ इस तरह देखा है पता नहीं क्यों, या कारण है कि यह परिवर्तन नहीं करता है या अद्यतन, यहाँ मेरी लॉग बिल्ली से थोड़ी है:

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 

उत्तर

3

नंबर पर आप देख रहे हैं एक हस्ताक्षरित 32 बिट int की न्यूनतम मूल्य है। मैं अनुमान लगाता हूं और कहता हूं कि एंड्रॉइड एक प्रतिशत वापस करने में असमर्थ है और वास्तव में आपको कचरा डेटा दे रहा है।

मैं अगर बफरिंग कोई वास्तविक मूल्य वापस हो जाता है देखने के लिए एक दूरस्थ एमपी 3 यूआरएल के साथ अपने इंटरनेट स्ट्रीम को प्रतिस्थापित होता

संपादित करें: Android दस्तावेज़ (जैसा कि यह आपके कोड के बाकी इसके लिए जिम्मेदार नहीं है इस बात की पुष्टि होगी।) OnBufferingUpdateListener के बारे में एक प्रगतिशील http डाउनलोड के लिए उपयोग केस बताता है, एक अंतहीन इंटरनेट स्ट्रीम नहीं।

मुझे विश्वास नहीं है कि एक बफरिंग प्रतिशत प्रदर्शित करने की क्षमता एंड्रॉइड के भीतर इनबिल्ट श्रोताओं का उपयोग करके उपलब्ध है। मीडियाप्लेयर क्लास आपकी स्ट्रीम को चलाने का फैसला करने के लिए एंड्रॉइड स्रोत को खोलने के बिना एंड्रॉइड स्रोत खोलने के बिना (और यदि वे कॉलबैक भी प्रदान करते हैं), तो मुझे संदेह है कि इस सवाल का समाधान हो जाएगा।

यदि कोई कोई प्रदान कर सकता है तो मुझे समाधान/समाधान में दिलचस्पी होगी।

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

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

+0

तो वहाँ किसी लाइव स्ट्रीम से एक buferring% प्राप्त करने के लिए एक तरीका है? – zvzej

+0

@zvzej मैंने अपने उत्तर को सही से विश्वास किया है जो मुझे विश्वास है। हालांकि मैं इस बग रिपोर्ट को लिंक करना चाहता हूं [बग 832] (http://code.google.com/p/android/issues/detail?id=832)। क्षमा करें मैं एक वास्तविक समाधान प्रदान नहीं कर सकता। – stevokk