2013-01-07 19 views
9

मैं एक एंड्रॉइड वीडियो संपादन एप्लिकेशन बनाने की कोशिश कर रहा हूं। मैंने एसडीके स्रोतों में देखा है कि 'android.media.videoeditor' पैकेज में कई कक्षाएं हैं जो मुझे जो चाहिए वह करने लगती हैं; हालांकि, जब मैं अपने जावा प्रोजेक्ट में कोशिश करता हूं और आयात करता हूं, तो मैं नहीं कर सकता क्योंकि ग्रहण के अनुसार वे मौजूद नहीं हैं! मैंने 'android.jar' की सामग्री की जांच की और निश्चित रूप से पर्याप्त, कक्षाएं गायब हैं।एंड्रॉइड वीडियो एडिटर क्लासेस

उस पैकेज में से एक वर्ग - MediaArtistNativeHelper.java - जो भी मूल तरीकों की आवश्यकता है, उसे कॉल करने के लिए जेएनआई का उपयोग करता है, जिसे मैं बता सकता हूं से सी ++ में लागू किया जाता है (क्या इसका मतलब है कि मुझे उन्हें अलग से बनाने की ज़रूरत है?)

मेरा सवाल है, मैं अपने प्रोजेक्ट में इन कक्षाओं का उपयोग कैसे कर सकता हूं?

मै मैक पर ग्रहण का उपयोग कर ऐप विकसित कर रहा हूं।

+0

अरे, कोई समाधान मिला? –

+0

@ सुबरा मेरा जवाब देखें। – bitek

+1

मैंने इस बारे में Google पर किसी से संपर्क किया था और इसके बजाय मीडियाकोडेक का उपयोग करने के लिए कहा गया था जो मैं करने की कोशिश कर रहा था। वीडियोडिटर पैकेज छुपा हुआ है क्योंकि इसका उपयोग नहीं किया जाना है। मैं अपनी समस्या को हल करने के लिए मीडियाकोडेक और एफएमपीपीईजी का उपयोग कर समाप्त हुआ क्योंकि एंड्रॉइड मीडिया पैकेज ने बिल्कुल वही नहीं किया जो मुझे चाहिए था। – Simon

उत्तर

7

android.media.videoeditor पैकेज, एक आंतरिक/छिपा पैकेज है यह ऊपर जावाडोक है क्योंकि वर्गों/इंटरफेस {@hide} या @hide एनोटेशन होते हैं।

आपको इसे अपने आवेदन के भीतर से उपयोग करने की अनुमति नहीं है और जैसा कि आपने देखा है कि एपीआई एंड्रॉइड.जर में मौजूद नहीं है जिसमें सार्वजनिक एपीआई उपलब्ध है। FYI पैकेज का जावाडोक here देखा जा सकता है।

कक्षाएं कि प्रबंधन ऑडियो और वीडियो में विभिन्न मीडिया इंटरफेस प्रदान करता है:

अपने आवेदन करने के लिए मीडिया कार्यक्षमता जोड़ने के बजाय android.media package का उपयोग करें, जो के लिए

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

पैकेज में अन्य विशेष कक्षाएं बिटमैप (FaceDetector) में, AudioManager लोगों की चेहरे का पता लगाने के (डिवाइस या एक हेडसेट करने के लिए) और इस तरह के रिंगटोन और फोन कंपन के रूप में नियंत्रण अलर्ट ऑडियो रूटिंग को नियंत्रित (क्षमता की पेशकश)।

android.jar की सामग्री को दिखा क्या android.media पैकेज में शामिल:

(ADT-बंडल-linux से लिया/SDK/प्लेटफार्मों/एंड्रॉयड -17 /android.jar)

enter image description here

+0

धन्यवाद, लेकिन MediaRecorder कक्षा का उपयोग करके इस https://android.googlesource.com/platform/frameworks/base/+/refs/heads/master/media/java/android/media/videoeditor/OverlayFrame.java का उपयोग कैसे करें .. ?? –

+1

@ सुब्रा एंड्रॉइड.मेडिया पैकेज प्रलेखन की जांच करें या [मंच/ढांचे/आधार] (https://android.googlesource.com/platform/frameworks/base/) के लिए स्रोत कोड को पकड़ें और देखें कि एंड्रॉइड से कौन सी कक्षाएं .media.videoeditor पैकेज का उपयोग किया जाता है। – bitek

0

आंतरिक और छिपे हुए संकुल संकलन समय पर पहुँचा नहीं जा सकता क्योंकि Android SDK उन्हें जरूरत नहीं है।

इसके लिए कोई आसान काम नहीं है। हालांकि आप इस ट्यूटोरियल को आजमा सकते हैं http://devmaze.wordpress.com/2011/01/18/using-com-android-internal-part-2-hacking-around/

यह ट्यूटोरियल बताता है कि डिवाइस से "पूर्ण" android.jar निकालने के लिए कैसे करें ताकि आप संकलित समय के दौरान छिपे हुए पैकेज प्राप्त कर सकें। एक बार आपके पास संकलित समय पर "छिपा" पैकेज हो जाने के बाद, आप इनके साथ अपना ऐप बना सकते हैं। यह चांदी की बुलेट की तरह लग सकता है लेकिन इसमें बड़ी कमी है। एक बार जब आप गैर-मानक एपीआई का उपयोग करते हैं तो सभी दांव बंद हो जाते हैं।यदि भविष्य में ओएस अपग्रेड में "छिपा" पैकेज बदलना/संशोधित किया जाना था, तो यह आपके उत्पाद को तोड़ देगा। उत्पादन वातावरण में यह दृष्टिकोण एक सौदा ब्रेकर है, लेकिन व्यक्तिगत/अकादमिक उपयोग के लिए विकसित ऐप्स के लिए, यह आपकी बात हो सकती है।

नोट: मैंने व्यक्तिगत रूप से यह कोशिश नहीं की है, लेकिन कुछ समय पहले इसे एक समान समस्या का सामना करते समय मिला (मेरा जवाब किसी अन्य छिपे हुए पैकेज में था)।

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