2015-06-25 58 views
9

Tôi hiện đang tìm cách phát triển một ứng dụng sử dụng Dấu gạch ngang thông qua ExoPlayer trong Android.Tạo một ví dụ đơn giản về ExoPlayer

Để bắt đầu với tôi đang đi qua các dự án demo tuy nhiên đang gặp rắc rối với thậm chí tạo ra một ví dụ làm việc đơn giản của ExoPlayer có thể dòng mp3 hoặc tương tự. Thực sự đánh giá cao bất kỳ sự giúp đỡ nào mà bất cứ ai cũng có thể liên quan để có được một ví dụ exoplayer rất đơn giản, từ đó tôi có thể thích ứng và xây dựng hoặc nếu có ai dẫn dắt nhiều tài liệu tham khảo hoặc hướng dẫn hơn. tài liệu ít có sẵn.

Cảm ơn rất nhiều vì mọi sự giúp đỡ!

Trả lời

17

Trước hết nhanh chóng ExoPlayer của bạn với dòng này:

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

Nếu bạn muốn chơi âm thanh duy nhất mà bạn có thể sử dụng các giá trị:

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

Cả hai giá trị đệm có thể được tinh chỉnh theo của bạn yêu cầu

Bây giờ bạn phải tạo một nguồn dữ liệu. Khi bạn muốn phát mp3, bạn có thể sử dụng DefaultUriDataSource. Bạn phải vượt qua bối cảnh và một UserAgent. Để giữ cho nó đơn giản chơi một tập tin địa phương và thông qua null như UserAgent:

DataSource dataSource = new DefaultUriDataSource(context, null); 

Sau đó tạo các sampleSource:

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

điểm uri đến tập tin của bạn, như là một Extractor bạn có thể sử dụng một Mp3Extractor mặc định đơn giản nếu bạn muốn chơi mp3. requestBufferSize có thể được tinh chỉnh lại theo yêu cầu của bạn. Sử dụng 5000 ví dụ.

Bây giờ bạn có thể tạo track renderer âm thanh của bạn bằng cách sử dụng mã nguồn mẫu như sau:

MediaCodecAudioTrackRenderer audioRenderer = new MediaCodecAudioTrackRenderer(sampleSource); 

Cuối cùng gọi chuẩn bị về dụ ExoPlayer của bạn:

exoPlayer.prepare(audioRenderer); 

Để bắt đầu cuộc gọi phát lại:

exoPlayer.setPlayWhenReady(true); 
+0

Cảm ơn bạn rất nhiều vì bình luận của bạn, Exoplayer là một tài sản tuyệt vời cho android tuy nhiên tại thời điểm này, bạn có thể bắt đầu ở lại cho đến khi họ biết rõ hơn! Tôi có một câu hỏi khác mà tôi vừa hỏi liên quan đến người chơi mà tôi sẽ yêu một số đầu vào nếu bạn cảm thấy bạn có thể giúp với điều đó! cảm ơn! –

+0

Siêu, nhưng làm thế nào để bạn hiển thị video? Với VideoView? .. Nevermind, chỉ tìm thấy https://github.com/brianwernick/ExoMedia/ – Stephane

+1

@MaxMarshall và mismor Làm thế nào tôi có thể chơi một tập tin aac? Vậy thì Extractor là gì? –

6

Dưới đây là cách bạn sẽ thực hiện việc đó bằng API ExoPlayer 2 mới và SimpleExoPlayer.

Đầu tiên tạo ra các cầu thủ:

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 

Sau đó tạo MediaSource của bạn. Đối với MP3 bạn có thể sử dụng 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 

Sau đó chuẩn bị và thi đấu khi đã sẵn sàng:

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

cho DASH bạn sẽ sử dụng DashMediaSource thay vì ExtractorMediaSource.

+0

** Cập nhật **: DataSource.Factory dataSourceFactory = new DefaultDataSourceFactory (ngữ cảnh, Util.getUserAgent (ngữ cảnh, "exoplayer2example"), bandwidthMeter) –

Các vấn đề liên quan