2012-02-12 9 views
10

मैं एक ऐसा एप्लीकेशन विकसित करना चाहता हूं जो YouTube से वीडियो की एक सूची प्रदर्शित करेगा और जब उपयोगकर्ता Youtube वीडियो पर क्लिक करेगा, तो मेरा एप्लिकेशन अपना ऑडियो खेलना शुरू कर देगा। मैं YouTube वीडियो को पहले डाउनलोड करने और ऑडियो निकालने के लिए एक समाधान में आया, लेकिन प्रक्रिया को तेज करने के लिए मैं सीधे ऑडियो बिट्स को वीडियो के बजाए अपने एप्लिकेशन के ऑडियो प्लेयर में स्थानांतरित करना चाहता हूं। दूसरे शब्दों में, मैं अपने आवेदन में वीडियो के बजाय YouTube ऑडियो स्ट्रीम करना चाहता हूं।मेरे आवेदन पर यूट्यूब वीडियो से केवल ऑडियो डेटा स्ट्रीम करने के लिए कैसे?

+1

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

उत्तर

5

ऐसा लगता है कि आप पहले से ही वहां से अधिकतर हैं। आपके एप्लिकेशन में वीडियो सूचीबद्ध करने और चयनित लोगों को डाउनलोड करने का एक तरीका है। वीडियो फ़ाइलों से सीधे ऑडियो चलाने के लिए आपको केवल एक बुनियादी ढांचे की आवश्यकता है।

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

3

निम्नलिखित कोड का उपयोग कर वीडियो स्ट्रीम से ऑडियो निकालने का प्रयास करें:

// the video URL is the following 
    String url = "http://137.110.92.231/~chenyu/BBC.mp4"; 

    MediaPlayer mediaPlayer = new MediaPlayer(); 
    mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC); 
    try { 
     mediaPlayer.setDataSource(url); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
    try { 
     mediaPlayer.prepare(); // might take long! (for buffering, etc) 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
    mediaPlayer.start(); 
संबंधित मुद्दे