2009-01-23 15 views
5

के साथ ऑडियो बजाना जे 2 एमई मीडिया मुक्ति का उपयोग करने वाले ऑडियो को चलाने का सबसे अच्छा तरीका क्या है? उदाहरण के लिए, क्या मुझे एमएमएपीआई का उपयोग करना चाहिए या क्या मुझे मिडलेट की प्लेटफॉर्मरक्वेट (स्ट्रिंग एस) विधि का उपयोग करना चाहिए?जे 2 एमई

+0

यह वास्तव में इस बात पर निर्भर करता है कि आप क्या करना चाहते हैं ... आप जो भी कर रहे हैं उसके प्रति आपको अधिक विशिष्ट होना चाहिए। यदि आप एमपी 3 खेलना चाहते हैं, तो यह बहुत आसान है। यदि आप इंटरनेट पर ऑडियो स्ट्रीम करना चाहते हैं, तो यह असंभव है। – joeforker

उत्तर

3

सर्वोत्तम, आपका क्या मतलब है? उच्चतम गुणवत्ता? सर्वश्रेष्ठ उपयोगकर्ता अनुभव? अधिकांश मानक-अनुरूप?

असल में (यह मुझे सबसे अच्छा जवाब नहीं है), यह मंच पर निर्भर करता है - जो कुछ जे 2 एमई के साथ एक परिचित विषय है - क्योंकि कार्यान्वयन व्यापक रूप से भिन्न हो सकता है और एमएमएपीआई आमतौर पर कुछ देशी मीडिया प्लेयर सॉफ्टवेयर/हार्डवेयर का लाभ उठाता है । ब्लैकबेरी पर एमएमएपीआई कुछ quirks के साथ, महान काम करता है।

मेरी सलाह MMAPI का उपयोग करना है जहां यह अच्छी तरह से काम करता है - यह आपको सबसे पोर्टेबल एप्लिकेशन देगा। अपने विशिष्ट लक्ष्य डिवाइस सेट के लिए डेवलपर बोर्डों का प्रयोग करें या ब्राउज़ करें ताकि यह देखने के लिए कि आप किस हैंडसेट पर समर्थन करना चाहते हैं, यह कितना अच्छा काम करता है।

7

निम्नलिखित कोड जेएसआर-135 का समर्थन करने वाले 9 0-95% हैंडसेट के लिए काम करना चाहिए। पोर्टेबल होने के लिए सभी विभिन्न विधि कॉलों का ऑर्डर करना महत्वपूर्ण है। यह आपके जार के लिए स्थानीय लोगों के लिए है। किसी भी स्ट्रीम ऑडियो पूरी तरह एक और समस्या :)

// loads the InputStream for the sound 
InputStream inputStream = this.getClass().getResourceAsStream(musicFile); 

// create the standard Player 
musicPlayer = Manager.createPlayer(inputStream, musicEncoding); 
musicPlayer.prefetch(); 

// add player listener to access sound events 
musicPlayer.addPlayerListener(this); 

if(loopMusic) 
{  
    // use the loop count method for infinite looping 
    musicPlayer.setLoopCount(-1); 
} 

// The set occurs twice to prevent sound spikes at the very 
// beginning of the sound. 
VolumeControl volumeControl = 
    (VolumeControl) musicPlayer.getControl("VolumeControl"); 
volumeControl.setLevel(curVolume); 

// finally start the piece of music 
musicPlayer.start(); 

// set the volume once more 
volumeControl = (VolumeControl) musicPlayer.getControl("VolumeControl"); 
volumeControl.setLevel(curVolume); 

// finally, delete the input stream to save on resources 
inputStream.close(); 
inputStream = null; 
0

कुछ एक मंच अनुरोध का उपयोग उपकरणों पर आपके आवेदन को बंद करने और दूसरों पर कुछ मंच अनुरोध (कुछ उपकरणों पर HTTP URL को के अलावा और कुछ) डिवाइस दुर्घटना होगा कारण होगा होगा ।

तो आपको डिवाइस परीक्षण के आधार पर उपयोग करने के लिए चुनने के लिए दोनों दृष्टिकोणों का उपयोग करने की आवश्यकता हो सकती है।

-1

स्थानीय ऑडियो (जार फ़ाइल में) उपरोक्त शेन के उत्तर में बताए गए अनुसार समर्थन करना आसान है। वेब पर सामग्री के लिए यह बहुत कठिन हो जाता है क्योंकि सर्वर कनेक्टिविटी मुद्दों, हैंडसेट मेमोरी इत्यादि जैसे कई कारक खेलते हैं। यदि आपको बड़ी संख्या में हैंडसेट का समर्थन करने की आवश्यकता होगी तो 2-3 कार्यान्वयन तकनीकों पर काम करने की सलाह दी जाएगी और तदनुसार उपयोग करें।

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