2012-06-25 14 views
17

क्या मीडियाप्लेयर इंस्टेंस का संदर्भ प्राप्त करना संभव है कि वीडियो व्यू का उपयोग कर रहा है, अधिमानतः अपने सीटीआर के अंदर सही है? यदि हां, तो कैसे?एंड्रॉइड में वीडियो व्यू के मीडियाप्लेयर प्राप्त करें

चूंकि वीडियो व्यू में मीडियाप्लेयर के रूप में ज्यादा श्रोताओं नहीं हैं, इसलिए मैं अतिरिक्त नियंत्रण और बेहतर ईवेंट हैंडलिंग के लिए मीडिया प्लेयर तक पहुंचने की क्षमता प्राप्त करना चाहता हूं।

+0

आप शायद इसे [प्रतिबिंब] (http://tutorials.jenkov.com/java-reflection/private-fields-and-methods.html) के माध्यम से कर सकते हैं। – yorkw

+0

प्रतिबिंब बहुत गन्दा और बहुत खतरनाक है। क्या वीडियो व्यू को विस्तारित करना और इसके बजाए मीडियाप्लेयर प्राप्त करना संभव है? –

उत्तर

12

आप वीडियो व्यू से श्रोता कर सकते हैं।

VideoView mVideoView=new VideoView(); 
mVideoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() { 
    @Override 
    public void onPrepared(MediaPlayer pMp) { 
    //use a global variable to get the object 
    } 
}); 

वैकल्पिक रूप से अगर आप केवल पर मीडिया प्लेयर घटनाक्रम रुचि रखते हैं आप इनमें से किसी का उपयोग कर सकते हैं और इन VideoView पर लागू किया जाता है और इन मूल रूप से MediaPlayer प्रतियोगिताएं हैं।

void setOnCompletionListener(MediaPlayer.OnCompletionListener l) 
void setOnErrorListener(MediaPlayer.OnErrorListener l) 
void setOnInfoListener(MediaPlayer.OnInfoListener l) 
void setOnPreparedListener(MediaPlayer.OnPreparedListener l) 

ये सभी फ़ंक्शन मीडिया प्लेयर इंस्टेंस भी देंगे।

+0

भले ही मैंने इस सवाल से बहुत पहले पूछा था, मुझे याद है कि मैं क्या चाहता था: इस नियंत्रण में सभी घटनाओं के बहुत सारे नियंत्रण और अधिसूचित किए जा रहे हैं: प्लेबैक स्थिति की घटनाएं (रोकें, शुरू करें, रोकें, तलाशें), त्रुटि घटनाएं, बफरिंग स्थिति, आदि ... मीडियाप्लेयर में उन सभी हैं (हालांकि यह सुनिश्चित नहीं है कि वे कितनी अच्छी तरह से काम करते हैं और कैसे), फिर भी वीडियो व्यू में केवल कुछ ही हैं। –

+0

वीडियो व्यू पर ईवेंट (उदा। सेटऑनइन्फोइस्टर (मीडियाप्लेयर.ऑनइन्फो लिस्टर एल)) केवल एपीआई स्तर 17 से उपलब्ध हैं, तो क्या होगा अगर मैं कम एपीआई स्तरों का समर्थन करना चाहता हूं? –

+0

आप पाए गए MediaPlayer ऑब्जेक्ट केOnInfoListener सेट कर सकते हैं। उपलब्ध> एपीआई 3. –

संबंधित मुद्दे