1

VideoView でビデオを再生します

SD カードから再生すると、フルスクリーンで正しい幅と高さが表示されます。サーバーから再生しようとすると、ビデオの幅が小さくなり、ビデオのサイズが変更されます。

ビデオを元のサイズでフルスクリーンで再生するにはどうすればよいですか?

4

1 に答える 1

0

ドキュメントを見て、次のコードのような onPrepared メソッドを実装します。

//prepare the video
public void onPrepared(MediaPlayer mp) {        
    progressBarWait.setVisibility(View.GONE);

    //First get the size of the video
    int videoWidth = player.getVideoWidth();
    int videoHeight = player.getVideoHeight();
    float videoProportion = (float) videoWidth / (float) videoHeight;  

    //get the size of the screen
    int screenWidth = getWindowManager().getDefaultDisplay().getWidth();
    int screenHeight = getWindowManager().getDefaultDisplay().getHeight();
    float screenProportion = (float) screenWidth / (float) screenHeight;

    //Adjust
    LayoutParams lp = surfaceViewFrame.getLayoutParams();
    if (videoProportion > screenProportion) {
        lp.width = screenWidth;
        lp.height = (int) ((float) screenWidth / videoProportion);
    } else {
        lp.width = (int) (videoProportion * (float) screenHeight);
        lp.height = screenHeight;
    }
    surfaceViewFrame.setLayoutParams(lp);

    if (!player.isPlaying()) {
        player.start();         
    }
    surfaceViewFrame.setClickable(true);
}
于 2013-04-25T12:53:20.063 に答える