2011-11-30 29 views
7

我目前正在開發一款專門用於android的GoogleTV設備的應用程序,該應用程序使用或強制將應用程序的方向設置爲除橫向以外的任何其他功能都未啓用,並且將來不會啓用想通了,實際上應用程序試圖運行時崩潰了setRequestedOrientation();在Videoview中旋轉實際的視頻緩衝器

視頻視圖繼承了來自普通視圖的位置屬性,例如SetX,SetY,即SetRotation

您可以將視頻視圖的旋轉角度設置爲90度,但實際的視頻緩衝器不會旋轉。 我已經嘗試了一切,從使用舊mediaplayer>surfaceview.getHolder().lockcanvas().rotate(degrees)以各種可以想象的方式,覆蓋onDraw自定義的視頻方法,擴展了普通的類,沒有哪一個我​​可以成功地工作。

簡而言之,如何在不改變設備方向的情況下在視頻內旋轉實際視頻? 如果你有一個旋轉的videoview的工作例子,它的內容也旋轉,請解釋你是如何工作的。

在此先感謝。

我想請您注意,我們正在爲android 3.1進行開發,並且到目前爲止所有內容都已動態編碼,所有圖像視圖和視頻視圖都是通過代碼創建的,只有我們用於Z索引項的特定佈局已在layout.xml文件中定義。

回答

1

即使正確設置了合成矩陣並使用了旋轉屬性,VideoView也不支持旋轉視頻。

你可以做的是使用TextureView並設置其屬性rotation =「90」(例如)。然後它會旋轉框架,但縱橫比是你需要處理你自己的東西。爲了做到這一點,你可以使用textTureView.setScaleX((screenHeight * 1.0F)/屏幕寬度)

更多詳情請看這裏:Rotating an android VideoView