2009-04-24 12 views
6

कई जे 2 एमई फोन पर (काफी परेशान) सीमाओं के कारण, ऑडियो फ़ाइलों को पूरी तरह से डाउनलोड किए जाने तक नहीं खेला जा सकता है। इसलिए, लाइव स्ट्रीम खेलने के लिए, मुझे एक समय में भाग डाउनलोड करने के लिए मजबूर होना पड़ता है, और ByteArrayInputStream एस का निर्माण होता है, जिसे मैं खिलाड़ियों को खिलाता हूं।जे 2 एमई में खिलाड़ियों में बफर घूर्णन करने के विकल्प?

यह अच्छी तरह से काम करता है, सिवाय इसके कि धारा के समाप्त होने पर हर बार लगभग 1/4 का एक परेशान अंतर होता है और एक नई आवश्यकता होती है। क्या इस समस्या को हल करने या ऊपर की समस्या को हल करने का कोई तरीका है?

+0

मुझे लगता है कि आप जो चाहते हैं वह स्रोतस्ट्रीम और डेटासोर्स कक्षाएं हैं जो javax.microedition.media.protocol में पाए गए हैं http://java.sun.com/javame/reference/apis/jsr135/javax/microedition/media/protocol /DataSource.html –

उत्तर

0

EDIT2: या आप सिर्फ इस जो वास्तव में होना करने के लिए आप क्या चाहते हैं लगता है पर दे सकता है: http://java.sun.com/javame/reference/apis/jsr135/javax/microedition/media/protocol/DataSource.html

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

यहां कुंजी कुंजी संक्रमण के समय को जानने के लिए टाइमबेस क्लास का सही ढंग से उपयोग कर रही है। मुझे लगता है कि इसे भाग के बीच कष्टप्रद 1/4 दूसरी अंतर शर्त से छुटकारा पाना चाहिए। मुझे उम्मीद है कि काम करता है, अगर मुझे ऐसा लगता है तो मुझे बताएं क्योंकि यह वास्तव में दिलचस्प लगता है।

संपादित करें: Player.prefetch() विलंबता को कम करने में भी उपयोगी हो सकता है।

1

दुर्भाग्यवश आप इन अंतराल से छुटकारा नहीं पा सकते हैं, कम से कम किसी भी डिवाइस पर मैंने इसे आजमाया नहीं है। यह वास्तव में बहुत परेशान है। यह कल्पना का हिस्सा है कि आप HTTP पर ऑडियो या वीडियो स्ट्रीम नहीं कर सकते हैं।

यदि आप किसी सर्वर से स्ट्रीम करना चाहते हैं, तो ऐसा करने का एकमात्र तरीका RTSP सर्वर का उपयोग करना है, हालांकि आपको अपने डिवाइस पर इसके लिए समर्थन जांचना होगा।

और डिवाइस पर स्थानीय सर्वर का उपयोग कर आरटीएसपी को फिक्र करना (आरटीएसपी: // लोकलहोस्ट ...) काम नहीं करता .. मैंने भी कोशिश की।

2

जे 2 एमई जेएसआर 135 के साथ लंबे (3 मिनट और अधिक) ट्रैक खेलने का एकमात्र अच्छा तरीका, मध्यम रूप से भरोसेमंद, वहां मौजूद हैंडसेट की सबसे बड़ी संख्या पर, "फ़ाइल: //" यूआरएल का उपयोग करना है जब आप खिलाड़ी बनाते हैं , या इनपुटस्ट्रीम वास्तव में एक फ़ाइल कनेक्शन से आते हैं।

हाल के ब्लैकबेरी फोन केवल बाइटएरे इनपुट इनपुट का उपयोग कर सकते हैं जब उनके पास एक बड़ी जावा हीप मेमोरी उपलब्ध हो।

सिम्बियन ऑपरेटिंग सिस्टम पर चल रहे बहुत से फोन आपको J2ME एप्लिकेशन के लिए निजी क्षेत्र में फ़ाइलों को रखने की अनुमति देंगे, जबकि अभी भी एक ही स्थान पर ट्रैक चलाने में सक्षम हैं।