System Android nie obsługuje domyślnie wielu formatów plików multimedialnych (takich jak .mkv). Ale gracze tacy jak MXPlayer i MoboPlayer umożliwiają odtwarzanie takich plików. Jak działają te aplikacje? Czy są jakieś tutoriale do programowania lub artykuły opisujące, jak to się robi?W jaki sposób aplikacje Media Player dla systemu Android, takie jak MXPlayer i MoboPlayer, odtwarzają nieobsługiwane formaty plików, takie jak MKV?
Odpowiedz
System Android nie obsługuje domyślnie wszystkich formatów multimediów. W związku z tym, aby obsługiwać nieobsługiwany format, aplikacje takie jak MoboPlayer same wykonują standardowe zadania odtwarzacza multimediów za pomocą kombinacji Java i kodu natywnego za pośrednictwem interfejsu JNI.
Aby lepiej zrozumieć, zobaczmy, co robi odtwarzacz multimedialny, aby odtworzyć plik multimedialny i jak są one wykonywane przez MoboPlayer, takie jak aplikacje w systemie Android.
Typical tasks of a Media Player
Gracz musi wykonać następujące zadania (a) demultiplekser format pliku i wyodrębnić audio/video (b) dekodowania wideo i audio (c) Wyświetla filmy i odtwarzać dźwięk. Zastanówmy się, jak te trzy obszary mogą być obsługiwane w przypadku odtwarzacza MoboPlayer.
File format Demux
Android nie obsługuje wszystkich pojemników format pliku, domyślnie. Na przykład ASF (format plików WMV) nie jest obsługiwany. Dlatego gracz musi mieć własnego demuxera, który wykona zadanie. libavformat (używany przez FFMPEG) jest wiodącą biblioteką demultipleksu open source.
Video/Audio decode
Libavcodec (używany przez FFMPEG) jest wiodącą biblioteki dekoder open source dekoduje demuxed i wytwarza nieskompresowane ramek wyjściowych surowe. Dlatego jest często używany przez graczy takich jak MoboPlayer.
Video display
Istnieją dwie opcje do wyświetlenia filmu. Gracze używają buforów SurfaceView
lub przyspieszonych buforów OpenGL. Android dostarcza rzut obiektu java Surface (abstrakcja leżącego poniżej obiektu flinger) do wewnętrznego obiektu natywnego o nazwie NativeWindow
, do którego można uzyskać dostęp za pomocą natywnego kodu.
System ICS (system Android 4.0) umożliwia także dostęp do przyspieszonych buforów OpenGL (SurfaceTexure
i TextureView
). Mogą one również służyć do wyświetlania wideo.
Audio playout
Gracze mogą bezpośrednio współdziałać z obiektem AudioTrack
przewidzianym na poziomie Java, aby odtworzyć zakodowane próbki audio.
OakBytes ma rację. Gracze używają parserów/oprogramowania-dekoderów innych firm, własnościowych lub FFMPEG. Niektórzy gracze używają również OpenGL do wyświetlania. Większość z nich korzysta z SuraceView i rodzimego odpowiednika NativeWindow do wyświetlania dekodowanego wideo. Działa to bez rodzimej architektury i jest równoległe do niego. W związku z tym moboplayer przewiduje również opcję używania dekoderów programowych lub sprzętowych. – peasea
- 1. Biblioteka Android Media Player
- 2. Android Media Player Odtwarzaj/Pauza
- 3. W jaki sposób CPU wprowadza instrukcje takie jak MUL/MULT?
- 4. W jaki sposób można wykorzystać zdarzenia takie jak CancelEventArgs?
- 5. W jaki sposób witryny takie jak Hubspot śledzą linki przychodzące?
- 6. Android Media Player nie odtwarza po zatrzymaniu
- 7. Automatyczne odtwarzanie wideo, takie jak Facebook, Android
- 8. Jak zabezpieczyć kontakty aplikacji, takie jak Facebook
- 9. Android Media Player nie zatrzymuje się
- 10. W jaki sposób języki takie jak C# i Java unikają C/C++ - jak niezależna kompilacja?
- 11. Natychmiastowe powiadomienia, takie jak Facebook
- 12. W jaki sposób aplikacje do wysyłania wiadomości iOS, takie jak Viber, Telegram, WhatsApp pobierają kontakty tak szybko i skutecznie
- 13. Pobierz pliki, takie jak mega.co.nz
- 14. Narzędzie takie jak ReSharper, ale dla Java?
- 15. Jak działają programy takie jak gitolite?
- 16. Jak zaimplementować niestandardowe zakładki w systemie Android, takie jak Instagram
- 17. Jak należy drukować typy, takie jak off_t i size_t?
- 18. Jak wdrażać aplikacje django dla systemu Windows?
- 19. Jak zaimplementować wyszukiwanie, takie jak przepełnienie stosu
- 20. Zastąpić komponenty, takie jak usługi?
- 21. Jak dostosować aplikacje do systemu Android 4.0?
- 22. Jak tworzyć przyciski, takie jak Android Google Plus App
- 23. W jaki sposób wdrożysz częściowe żądanie i odpowiedź, takie jak apk youtube, używając ServiceStack?
- 24. W jaki sposób jest zaimplementowana klasa Object (metody takie jak hashCode i pola wewnętrzne)?
- 25. Jak przechowywać dane "takie same"?
- 26. Jak mogę generować takie wątki?
- 27. Jak uzyskać takie zagnieżdżone listy?
- 28. Jak skonfigurować emulator systemu Android, aby wyświetlał przyciski ekranowe, takie jak nowy Galaxy Nexus?
- 29. Pokaż funkcje, takie jak '+' lub '[' jak
- 30. okrągłe tekstowe Widoki takie jak Google Messenger
mkv to tylko pojemnik. możesz użyć wielu różnych kodeków wideo/audio wewnątrz ... – Goddchen