2013-06-11 8 views
5

stworzyłem odtwarzacza wideo za pomocą MediaCodec i MediaExtractor, ale gdy próbuję zmienić pozycję multimedialnego przy użyciu MediaExtractorseekTo metody jest to naprawdę powolna (zajęło 10 sekund do poszukiwania wideo 1080p), natomiast SDK MediaPlayer mogą szukać w czasie rzeczywistym. Masz pomysł, żeby to naprawić?Powolne MediaExtractor seekTo

MediaExtractor extractor = new MediaExtractor(); 
extractor.setDataSource(SAMPLE);  
. 
. 
. 
extractor.seekTo(480000000, MediaExtractor.SEEK_TO_CLOSEST_SYNC); 

Aktualizacja

Theo oryginalny projekt jest here

+0

Cześć, to jest pytanie. Jak utworzyć odtwarzacz wideo za pomocą MediaCodec i MediaExtractor? Jak rozumiem, te zajęcia są w/media/jni, czy odbudowałeś "media-jni"? Jeśli tak, to czy możesz mi w tym pomóc? Mój obecny numer to przebudowywanie "media-jni" (wywołanej z MediaPlayer.java), dzięki czemu mogę kontrolować nagłówki (z coookie) w funkcji setDataSource(). Dziękuję i tak. – Nezneika

+1

@hami, MediaCodec i MediaExctractor są przedstawiane w Jelly Bean i są publiczne (http://developer.android.com/reference/android/media/MediaCodec.html) –

+0

Dziękuję za informacje. Jednak w moim zadaniu muszę użyć systemu Android na poziomie 14 zamiast JB, szkoda. – Nezneika

Odpowiedz

5

Znalazłem błąd powodujący, że stara się być powolne. Był to zegar synchronizacji używany do utrzymywania multimediów FPS.

Właśnie dodany nowy projekt pracy z następujących cech:

  • Prawidłowe poszukiwania
  • właściwych nośników pozycja
  • Prawidłowe mediów trwania
  • MediaController
  • odtwarzania poprawkę dla niektórych filmy, które dekoder sprzętowy (MediaCodec) nie może poprawnie wykryć znaczników czasu klatek.

https://github.com/mafshin/MediaCodecDemo

+0

Czy znalazłeś poprawkę? – StackOverflowed

+0

@StackOverflowed, faktycznie przełączyłem się z MediaCodec na dobrze rozpoznaną bibliotekę Vitamio (https://github.com/yixia/VitamioBundle). –