पर त्रुटि "क्षमा करें, यह वीडियो नहीं चलाया जा सकता" त्रुटि को पकड़ने के लिए मेरे पास एक वीडियो व्यू है और मैं रिमोट सर्वर से वीडियो स्ट्रीम कर रहा हूं। ज्यादातर बार यह वीडियो को बहुत आसानी से चलाएगा। लेकिन कभी-कभी, यह एक त्रुटि संदेश प्रदर्शित करता है "क्षमा करें, यह वीडियो नहीं चलाया जा सकता"। मेरे पास एक झटका है कि यह समर्थित वीडियो प्रारूपों पर अधिक है। हालांकि, मुझे नहीं पता कि समर्थित प्रारूप कौन से हैं। मेरा सवाल है "मैं इस त्रुटि को कैसे पकड़ सकता हूं (उदा। त्रुटि संदेश को प्रकट होने से रोकें)"? मैं इस परियोजना पर एंड्रॉइड 2.2 का उपयोग कर रहा हूं। किसी भी सलाह की काफी सराहना की जाएगी। :)वीडियोव्यू
उत्तर
setOnErrorListener का उपयोग करने का प्रयास करें: प्रलेखन यदि कोई श्रोता निर्दिष्ट नहीं है, या श्रोता झूठी लौटाई गई है, तो वीडियो व्यू किसी भी त्रुटि के उपयोगकर्ता को सूचित करेगा।, इसलिए मुझे लगता है कि यदि आप एक सेट करते हैं और सत्य लौटाते हैं तो यह उपयोगकर्ता त्रुटि नहीं दिखाएगा।
इस जानकारी के लिए धन्यवाद। मैं इसे पहले कर दूंगा और अगर यह काम करता है तो आपको सूचित करेगा। धन्यवाद :) – emmandroid
मैं पुष्टि करता हूं कि यह काम करता है। – BoD
डायलॉग अभी भी मेरे मामले में पॉप अप करेगा। कोई विचार? – user1810737
कोड मैं इस के लिए इस्तेमाल किया:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
vView = (VideoView) findViewById(R.id.videoView1);
vSource = "android.resource://com.domain.android/"
+ R.raw.introductionportrait;
vView.setVideoURI(Uri.parse(vSource));
vView.setOnErrorListener(mOnErrorListener);
vView.requestFocus();
vView.start();
}
private OnErrorListener mOnErrorListener = new OnErrorListener() {
@Override
public boolean onError(MediaPlayer mp, int what, int extra) {
// Your code goes here
return true;
}
};
मैं onCreate विधि के भीतर इस तरह के श्रोताओं की स्थापना पसंद करते हैं। उम्मीद है कि
videoView.setOnErrorListener(new OnErrorListener() {
@Override
public boolean onError(MediaPlayer mp, int what, int extra) {
Log.e(TAG, "Error playing video");
return true;
}
});
आप नीचे दिए गए कोड को जोड़ सकते हैं, तो कोई त्रुटि होने पर यह वीडियो दृश्य स्क्रीन बंद कर देगा। इसके अलावा, यह वीडियो कहने का डिफ़ॉल्ट पॉपअप प्रदर्शित नहीं करेगा :)
videoview.setOnErrorListener(new MediaPlayer.OnErrorListener() {
@Override
public boolean onError(MediaPlayer mediaPlayer, int i, int i1) {
finish();
return true;
}
});
क्या आपने कोशिश/पकड़ के साथ प्रयास किया? – Rasel
हम्म हां.लेकिन मुझे नहीं पता कि मैं किस "पकड़" का उपयोग करूंगा। क्या कोई ऐसा कोड है जो VideoView.isPlayable या ऐसा कुछ काम करता है जैसे काम करता है? प्रतिक्रिया के लिए धन्यवाद :) – emmandroid
कोशिश-पकड़ इस मामले के लिए काम नहीं करता है क्योंकि यह एक असीमित प्रक्रिया है। आपको ऑनर लिस्टर सेट करने का प्रयास करना चाहिए। (ऑनर लिस्टनर के डॉक्टर से: "एसिंक्रोनस ऑपरेशन के दौरान त्रुटि होने पर कॉलबैक की इंटरफ़ेस परिभाषा लागू की जाएगी (अन्य त्रुटियां विधि कॉल समय पर अपवाद फेंक देंगी)।) – Taner