2

VideoViewを呼び出しsetRotation()た後、そのVideoViewは再生されなくなったことがわかりました。Androidランタイムによってエラーがスローされることはなく、VideoViewはトリミングのサイズを正しく決定しますが、黒一色のボックスとしてのみ表示されます。

これは既知の制限ですか?もしそうなら、VideoViewsを回転させる別の方法はありますか?APIレベル16を使用しています。

編集:ビデオはオーディオを再生しますが、ビデオは再生しません。おそらく、基になるSurfaceViewが再配置されていませんか?

4

1 に答える 1

1

後で誰かに役立つ場合に備えて自分自身に答えるために、これは VideoView の既知の制限です。この Android グラフィック ブログ投稿からの引用:

SurfaceView のコンテンツはアプリケーションのウィンドウに存在しないため、効率的に変換 (移動、スケーリング、回転) することはできません。これにより、ListView または ScrollView 内で SurfaceView を使用することが難しくなります。また、SurfaceView は、フェード エッジや View.setAlpha() などの UI ツールキットの一部の機能と適切に対話できません。

私が見つけた唯一の解決策は、VideoView を、新しく導入された TextureView に置き換えることでしたこれは、API レベル 14 以降でのみ使用できます。私が読んだところ、互換性ライブラリでは現在利用できません。This questionには、TextureViewを使用してビデオを再生する方法の例があります。これは非常に簡単で、MediaPlayerをラップするVideoViewの便利さだけが失われます。

于 2013-01-28T20:35:44.337 に答える