2011-11-30 15 views
7

Obecnie tworzę aplikację specjalnie dla urządzeń GoogleTV Androida, w których stosowanie lub zmuszanie orientacji aplikacji do elementów innych niż krajobrazowe nie jest włączone i nie będzie włączane w przyszłości z tego, co mam zorientował się, w rzeczywistości aplikacja po prostu ulega awarii po próbie uruchomienia setRequestedOrientation();Obracanie faktycznego wideoklipu w widoku wideo

Wyświetlenia wideo dziedziczą właściwości pozycyjne z widoków normalnych, Rzeczy takie jak SetX, SetY, a mianowicie SetRotation.

Można ustawić obrót widoku wideo na 90 stopni, ale rzeczywisty wideoklip nie będzie się obracał. Próbowałem wszystkiego, od używania starego mediaplayer'a>surfaceview.getHolder().lockcanvas().rotate(degrees) w każdy możliwy sposób, do nadpisania metody onDraw niestandardowego widoku wideo, który rozszerza normalną klasę, z której żadna nie mogłaby pomyślnie pracować.

W dużym skrócie: Jak mogę obrócić film wideo w trybie wideo, bez zmiany orientacji urządzenia? jeśli masz działający przykład obróconego widoku wideo z jego obróconą treścią, wyjaśnij, jak to działa.

Z góry dziękuję.

Chciałbym, abyście zauważyli, że pracujemy nad Androidem 3.1, a także, że wszystko do tej pory zostało zakodowane dynamicznie, wszystkie wyświetlenia obrazu i podgląd wideo są tworzone za pomocą kodu, a tylko określone układy, których używamy do indeksowania Z elementów zostały zdefiniowane w pliku layout.xml.

Odpowiedz

1

VideoView nie obsługuje rotacji wideo, nawet jeśli macierz kompozycji jest poprawnie ustawiona i używany jest atrybut obrotu.

Co można zrobić, to użyć TextureView i ustawić jego obrót = "90" (na przykład). Następnie obraca ramki, ale współczynnik proporcji jest czymś, co trzeba obsłużyć. W tym celu można użyć textTureView.setScaleX ((ScreenHeight * 1.0f)/ScreenWidth)

Więcej szczegółów tutaj: Rotating an android VideoView