1

Exoplayerライブラリを使用してビデオ プレーヤー アプリケーションを作成しています。YouTube のような機能を作ろうとしています。ビデオ プレーヤーを下にドラッグすると、小さいサイズに縮小されます。そのために、 ViewDragHelperを使用しました。プレーヤーがドラッグしているとき、次のようにサイズを変更します:

public void onViewPositionChanged(View changedView, int left, int top, int dx, int dy) {
            mTop = top;

            mDragOffset = (float) top / mDragRange;

            mVideoView.setPivotX(mHeaderView.getWidth());
            mVideoView.setPivotY(mHeaderView.getHeight());
            mVideoView.setScaleX(1 - mDragOffset / 2);
            mVideoView.setScaleY(1 - mDragOffset / 2);

            mDescView.setAlpha(1 - mDragOffset);
            requestLayout();
        } 

mVideoViewでありSurfaceView、プレーヤーはSurfaceViewコンテンツをレンダリングするために必要です。縮尺は正しくなっていますが、SurfaceViewコンテンツはそうではありません。

質問: SurfaceView とそのコンテンツをスケーリングするにはどうすればよいですか?

4

4 に答える 4

8

最後に、私は私の質問に対する解決策を見つけました。TextureView代わりにを使用しましたSurfaceViewが、今では完璧に機能しました。

于 2015-05-14T01:26:13.273 に答える
4

次のようTextureViewに代わりに使用できます。SurfaceView

<com.google.android.exoplayer2.ui.PlayerView
        android:id="@+id/play_view"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:surface_type="texture_view"/>
于 2018-11-16T06:59:13.603 に答える