2011-06-07 17 views
5

私は、ビデオ用のAndroid MediaPlayerデモを使用しています。私は640x480のビデオをストリーミングしています。私は単に、アスペクト比を維持しながらビデオを(どんなデバイス方向でも)できるだけ大きくすることを望んでいます。私はこれをすることができません。画面全体に広がるだけです。レイアウト内のSurfaceViewは、「fill_parent」または「wrap_content」のいずれかで縦横比を維持しません。私がチェック(およびコード内の表面サイズを変更すると、すべての変更を無視するようで、どのような奇妙なのは、私は自分のビデオサイズは、このコードでは聞いています:。176×144Androidストリーミングビデオ - アスペクト比が必要

public void onVideoSizeChanged(MediaPlayer mp, int width, int height) 
{ 
    Log.v(TAG, "onVideoSizeChanged called"); 
    Log.v(TAG, "Surface Width: " + width + " Surface Height: " + height); 
    if (width == 0 || height == 0) { 
     Log.e(TAG, "invalid video width(" + width + ") or height(" + height + ")"); 
     return; 
    } 
    mIsVideoSizeKnown = true; 
    mVideoWidth = width; 
    mVideoHeight = height; 

    mVideoWidth = mp.getVideoWidth(); 
    mVideoHeight = mp.getVideoHeight(); 
    Log.v(TAG, "Surface Width: " + mVideoWidth + " Surface Height: " + mVideoHeight); 
    if (mIsVideoReadyToBePlayed && mIsVideoSizeKnown) { 
     startVideoPlayback(); 
    } 
} 

これはどこです私が試してみて、サイズを変更:

private void startVideoPlayback() { 
    Log.v(TAG, "startVideoPlayback"); 
    holder.setFixedSize(mVideoWidth, mVideoHeight); 
    mMediaPlayer.start(); 
} 

思考

答えて

0

(setLayoutParamsを使用しようとする)OnPreparedに()

public void onPrepared(MediaPlayer mp) { 
    ... 
    mSurfaceView.setLayoutParams(new LinearLayout.LayoutParams(vWidth, vHeight)); 
    ... 
}; 
関連する問題