2015-06-25 10 views
9

का एक साधारण उदाहरण बनाना मैं वर्तमान में एंड्रॉइड में एक्सपोप्लेयर के माध्यम से डैश का उपयोग करने वाले एप्लिकेशन को विकसित करना चाहता हूं।ExoPlayer

शुरू करने के लिए मैं डेमो प्रोजेक्ट के माध्यम से जा रहा हूं, हालांकि एक्सोप्लेयर का एक सरल कामकाजी उदाहरण बनाने में भी परेशानी हो रही है जो एमपी 3 या इसी तरह स्ट्रीम कर सकती है।

वास्तव में कोई भी सरल एक्सप्लेयर उदाहरण प्राप्त करने से संबंधित किसी भी मदद की सराहना करता है जिससे मैं अनुकूलित कर सकता हूं और निर्माण कर सकता हूं या यदि किसी के पास अधिक संदर्भ या गाइड के लिए कोई लीड है जो मैं कर सकता हूं जैसा कि लगता है छोटे दस्तावेज उपलब्ध है।

सभी और किसी भी मदद के लिए बहुत बहुत धन्यवाद!

उत्तर

17

सबसे पहले इस लाइन के साथ अपने ExoPlayer का दृष्टांत:

exoPlayer = ExoPlayer.Factory.newInstance(RENDERER_COUNT, minBufferMs, minRebufferMs); 

आप ऑडियो खेलने के लिए चाहते हैं, तो केवल आप इन मानों का उपयोग कर सकते हैं:

RENDERER_COUNT = 1 //since you want to render simple audio 
minBufferMs = 1000 
minRebufferMs = 5000 

दोनों बफर मूल्यों के अनुसार बदलाव किया जा सकता है आपके आवश्यकताएं

अब आपको डेटा स्रोत बनाना है। जब आप एमपी 3 स्ट्रीम करना चाहते हैं तो आप DefaultUriDataSource का उपयोग कर सकते हैं। आपको संदर्भ और उपयोगकर्ता एजेन्ट पास करना होगा। userAgent के रूप में यह आसान खेलने के लिए एक स्थानीय फ़ाइल रखने के लिए और पारित अशक्त:

DataSource dataSource = new DefaultUriDataSource(context, null); 

फिर बनाने sampleSource:

ExtractorSampleSource sampleSource = new ExtractorSampleSource(
        uri, dataSource, new Mp3Extractor(), RENDERER_COUNT, requestedBufferSize); 

अपने फ़ाइल का URI अंक, एक एक्सट्रैक्टर के रूप में आप एक सरल डिफ़ॉल्ट Mp3Extractor अगर उपयोग कर सकते हैं आप एमपी 3 खेलना चाहते हैं। अनुरोध किया गया है BufferSize आपकी आवश्यकताओं के अनुसार फिर से tweaked किया जा सकता है। उदाहरण के लिए 5000 का प्रयोग करें।

अब आप इस प्रकार नमूना स्रोत का उपयोग कर अपने ऑडियो ट्रैक रेंडरर बना सकते हैं:

MediaCodecAudioTrackRenderer audioRenderer = new MediaCodecAudioTrackRenderer(sampleSource); 

अंत में अपने exoPlayer उदाहरण पर तैयार फोन:

exoPlayer.setPlayWhenReady(true); 
:

exoPlayer.prepare(audioRenderer); 

प्लेबैक कॉल प्रारंभ करने के

+0

आपकी टिप्पणी के लिए बहुत बहुत धन्यवाद, एक्सप्लेयर मेरी राय में एंड्रॉइड के लिए एक बड़ी संपत्ति है, हालांकि फिलहाल यह शुरुआती दोस्ताना दस्तावेज में प्रतिनिधित्व के तहत दुखी है, हालांकि शायद शुरुआती लोगों को बेहतर रहना चाहिए जब तक कि वे बेहतर नहीं जानते! मेरे पास एक और सवाल है जिसे मैंने अभी खिलाड़ी से संबंधित पूछा है, अगर आपको लगता है कि आप इससे भी मदद कर सकते हैं तो मुझे कुछ इनपुट पसंद आएगा! धन्यवाद! –

+0

सुपर, लेकिन आप वीडियो कैसे दिखाएंगे? VideoView के साथ? .. कभी नहीं, बस https://github.com/brianwernick/ExoMedia/ – Stephane

+1

@MaxMarshall और mismor मैं एक एएसी फ़ाइल कैसे चला सकता हूं? तब एक्स्ट्रेक्टर क्या होना चाहिए? –

6

यहां बताया गया है कि आप नए एक्सपोप्लेयर 2 एपीआई औरका उपयोग करके इसे कैसे करेंगे।

पहले खिलाड़ी बनाने के लिए:

DefaultBandwidthMeter bandwidthMeter = new DefaultBandwidthMeter(); 
DataSource.Factory dataSourceFactory = new DefaultDataSourceFactory(context, bandwidthMeter); 

TrackSelection.Factory videoTrackSelectionFactory = new AdaptiveTrackSelection.Factory(bandwidthMeter); 
DefaultTrackSelector trackSelector = new DefaultTrackSelector(videoTrackSelectionFactory); 
LoadControl loadControl = new DefaultLoadControl(); 

SimpleExoPlayer player = ExoPlayerFactory.newSimpleInstance(context, trackSelector, loadControl); 

player.addListener(...); // To receive events from the player 

फिर अपने MediaSource पैदा करते हैं। एमपी 3 के लिए आप ExtractorMediaSource उपयोग कर सकते हैं:

ExtractorsFactory extractorsFactory = new DefaultExtractorsFactory(); 
Uri uri = Uri.parse(mp3UriString); 
Handler mainHandler = new Handler(Looper.getMainLooper()); 
MediaSource mediaSource = new ExtractorMediaSource(uri, dataSourceFactory, extractorsFactory, mainHandler, mediaSourceListener); // Listener defined elsewhere 

फिर से तैयार करने और तैयार होने पर खेलने:

player.prepare(mediaSource); 
player.setPlayWhenReady(true); 

डैश के लिए आप DashMediaSource बजाय ExtractorMediaSource का प्रयोग करेंगे।

+0

** अपडेट **: डेटासोर्स। फैक्टरी डेटासोर्स फैक्टरी = नया डिफॉल्टडाटासोर्सफैक्टरी (संदर्भ, Util.getUserAgent (संदर्भ, "exoplayer2example"), बैंडविड्थमीटर) –

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