2013-10-03 14 views
7

W mojej aplikacji muszę odtwarzać wideo z karty SD. Teraz działa dobrze na Galaxy S, Galaxy Tab2, ale na jakiejś chińskiej karcie Jak "Giada" To w ogóle nie działa.Widok wideo w systemie Android Odtwarzanie plików MP4 na niektórych urządzeniach nie jest możliwe

Mam 4 różne aktywności do odtwarzania filmów takich jak. Pierwsza czynność odtwarza wideo z menu, które ma link do nawigacji do innej aktywności. Problemy, przed którymi stoję.

  1. Pierwszy film jest odtwarzany poprawnie, ale nie można nawiązać pętli i aplikacja jest zamknięta.
  2. Jeśli przejdę do innej aktywności, aby odtworzyć kolejny film wideo, pojawia się komunikat "Nie można odtwarzać wideo" i jest zamknięty Czas odtwarzania tego samego filmu, ale nie jest zakończona i zamknięta.

Film Rozszerzenie: MP4 Rozdzielczość: 1024x600 Odtwarzanie Od: SDCard.

Specyfikacja karty celu.

Rozdzielczość: 1024x600 Android: 4.1

Próbowałem z wideo View i SurfaceView.

Pomóż mi, że wszelka pomoc zostanie odrzucona.

Odpowiedz

14

Odpowiedź na to pytanie nigdy nie będzie spójna na wszystkich urządzeniach lub we wszystkich filmach.

czy dany plik wideo będzie grać w danym odtwarzaczu zależy od trzech rzeczy:

  • format kontenera wideo (typu pliku).
  • Kodeki wideo (i potencjalnie audio) strumienie są kodowane przy wsparciu
  • odtwarzaczu za tą kombinacją formatu kontenera oraz kodeka

Kodek i gracz/urządzenie podtrzymujące bo to prawie na pewno przyczyną niespójnych rezultatów, które widziałeś. (Kodek, jeśli nie wiesz, jest w zasadzie powtarzalną formułą matematyczną, która mówi twojemu systemowi, jak przekształcać bity i bajty spakowane w plik w ruchome obrazy (i jeszcze raz z powrotem, jeśli o to chodzi))

Istnieje wiele różnych kodeków wideo w plikach wideo unoszących się tam. Obsługa tych kodeków jest szalenie niespójna tylko z powodu historii dystrybucji wideo. Wiele urządzeń nie obsługuje strumieni zakodowanych za pomocą niektórych kodeków. Istnieje wiele przyczyn takiego stanu rzeczy, ale najczęstszymi są koszty nieprzejrzystości lub licencji.

Na przykład, jeszcze kilka lat temu prawie wszystko zostało zakodowane w pojemniku FLV z kodeka On2 VP6/VP7/VP8. To powoduje obecnie bóle głowy, ponieważ podczas gdy On2 był właścicielem tych kodeków, utrzymywali oni restrykcyjne licencje. To nie rozluźniło się, dopóki .FLV już nie zaczęło tracić znaczenia, a więc nie ma zbyt wielu (legalnych) programów, które mogłyby pracować z treścią kodowaną przez On2.

Co to wszystko oznacza, że ​​nie ma srebrnej kuli. Wszystkie wideo nigdy nie będą działać na wszystkich urządzeniach, przynajmniej nie bez pomocy odtwarzaczy wideo, które instalują i używają własnych kodeków do dekodowania strumieni.

Nie trzeba dodawać, że nie obejmuje to bibliotek dostarczonych Tobie i Twoim użytkownikom końcowym przez fabrycznie zainstalowane biblioteki Androida.

Co więc robisz? No, krótko wytwarzania odtwarzacz wideo, który posiada własne kodeki można najskuteczniej rozwiązać problem z podejściem dwuetapowym: Urządzenia specyficzne

  1. docelowe, które chcesz aplikacja do pracy na
  2. zakodować treść do użycia użyj kodeku wideo, który działa na wszystkich urządzeniach, na które chcesz kierować reklamy. Być może trzeba będzie utworzyć dwie kopie wideo, jeśli okaże się, że nie ma kodera-dekodera działającego na wszystkich urządzeniach, które zamierzasz obsługiwać.

Obecnie najszersze wsparcie jest dostępne przy kontenerze MP4 i zakodowanego strumienia wideo z H.264 (AVC) kodeka. Jak już wspomniałem, nie ma srebrnej kuli, a wsparcie H.264 nie jest w żaden sposób uniwersalne, ale ten jeden format będzie dostępny dla większej liczby potencjalnych użytkowników niż jakikolwiek inny możliwy wybór, ze względu na jego popularność i szerokie poparcie w nowoczesnym środowiska stacjonarne i mobilne.

Niektóre narzędzia mogą okazać się pomocne:

  • MediaInfo pozwoli Ci zajrzeć do środka MPEG-przyprawione pojemników wideo, aby zobaczyć jakie kodeki są w użyciu. Pomoże to w określeniu, które urządzenia mają problemy z kodekami.
  • FFmpeg jest aplikacją kodowania, które można przekształcić swoją zawartość do MP4/H.264

Powodzenia!

+0

Świetna robota, moim docelowym urządzeniem jest naprawienie, że jest to tablet Giada. – sandy

+0

Awesome. Więc, co chcesz zrobić, to dowiedzieć się - dzięki badaniom, jeśli możesz i próbować i pomyłkować, jeśli musisz - jaka kombinacja kodeków/kontenerów będzie grać na urządzeniu i jakie poziomy jakości (bitrate wideo i rozdzielczość) są ci najwięksi) będą odtwarzane płynnie. – Umopepisdn

+0

Po znalezieniu "słodkiego miejsca" - właściwej kombinacji pojemnika, kodeków, rozdzielczości, szybkości transmisji, poziomu jakości i płynności odtwarzania dla urządzenia, przekonwertuj całą zawartość do tego formatu. – Umopepisdn

Powiązane problemy