2010-11-09 19 views
5

मैं एक एंड्रॉइड ऐप विकसित कर रहा हूं जो एमपी 3 फाइलें चलाएगा। हालांकि एमपी 3 फ़ाइलें एसडी कार्ड या स्क्लाइट पर एन्क्रिप्ट की गई हैं। डिक्रिप्शन के बाद, किसी भी तरीके से, मेरे पास बाइट्स की एक स्ट्रीम होगी। मैं उन्हें कैसे खेलूं? MediaPlayer पैरामीटर के रूप में इनपुटस्ट्रीम नहीं लेता है, इसलिए मैं उस पर विचार नहीं कर सकता।एंड्रॉइड में बाइट्स की ऑडियो स्ट्रीम कैसे खेलें?

+0

संभवत: इस का डुप्लिकेट? स्वीकार्य उत्तर की जांच करें क्योंकि यह 'बाइट [] 'खेलने के बारे में बात करता है: http://stackoverflow.com/questions/1972027/android-playing-mp3-from-byte – birryree

+0

स्ट्रीम उपयोगकर्ता के लिए उपलब्ध नहीं होना चाहिए। इसलिए, यदि मैं एक फ़ाइल करता हूं, तो उपयोगकर्ता फ़ाइल तक पहुंच सकता है और यह इस विशेष परियोजना के लिए एक अच्छा विचार नहीं है। – Vikram

उत्तर

0

यह आसान नहीं होगा। मैंने ब्लैकबेरी पर इसे पहले किया है, इसलिए मुझे लगता है कि यह एंड्रॉइड पर भी काम करने योग्य है।

यदि मैं आप थे तो मैं कस्टम "एन्क्रिप्टेड एमपी 3:" प्रोटोकॉल के लिए एक नया प्रदाता पंजीकृत करूंगा। तब मैं MediaPlayer के लिए कोई डेटा स्रोत में निर्दिष्ट होगा:

mediaplayer.setDataSource(this, URI.parse("encryptedmp3://....yourfile")); 

मुझे यकीन है कि Android पर एक नया प्रोटोकॉल हैंडलर बनाने का तरीका नहीं हूँ।

मुझे आशा है कि इससे थोड़ा सा मदद मिलेगी।

एम्मानुएल

2

मैं तुम्हें प्रणाली दायर करने के लिए धारा स्टोर करने के लिए की जरूरत है; तो आप आप पीसीएम ऑडियो स्रोत के लिए स्विच कर सकता है MediaPlayer

FileInputStream rawmp3file= new FileInputStream(yourByteArrayAsMp3File); 
mediaPlayer.setDataSource(rawmp3file.getFD()); 

की setDataSource पद्धति का उपयोग करके की कोशिश कर सकते, AudioTrack वर्ग पर एक नजर है।

audiotrack वर्ग का प्रबंधन और निभाता जावा अनुप्रयोगों के लिए एक भी ऑडियो संसाधन। यह प्लेबैक के लिए ऑडियो हार्डवेयर पर पीसीएम ऑडियो बफर स्ट्रीम करने की अनुमति देता है। यह द्वारा ऑडियो को ट्रैक (बाइट [], int, int) का उपयोग करके ऑब्जेक्ट (ऑडियो] ऑब्जेक्ट पर "धक्का" देता है और लिखते हैं (लघु [], int, int) विधियां।

-1

BASS library (गैर-वाणिज्यिक उपयोग के लिए नि: शुल्क) पर एक नज़र डालें।
यहां Android के लिए एक कड़ी है: http://www.un4seen.com/forum/?topic=13225.0

है BASS_StreamCreateFile समारोह:

HSTREAM BASS_StreamCreateFile(
    BOOL mem, 
    void *file, 
    QWORD offset, 
    QWORD length, 
    DWORD flags 
); 

पैरामीटर:

mem  TRUE = stream the file from memory. 
file Filename (mem = FALSE) or a memory location (mem = TRUE). 
संबंधित मुद्दे