2011-06-07 28 views
5

Video için Android MediaPlayer demosunu kullanıyorum. 640x480 video akışı var. En/boy oranını korurken videonun olabildiğince büyük olmasını (cihaz yöneliminde) istiyorum. Bunu yapmak için alamıyorum. Sadece tüm ekran boyunca uzanır. Yerleşimdeki SurfaceView'ım, "fill_parent" veya "wrap_content" öğelerindeki en boy oranını korumaz. Ben kontrol (ve kod yüzey boyutunu değiştirdiğinizde, herhangi bir değişiklik görmezden görünüyor Ya garip benim video boyutu olan bu kodda söylendi geçerli:. 176 x 144.Android Streaming Video - İyon Oranı İhtiyacı Var

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(); 
    } 
} 

Bu nerede Ben denemek ve boyutunu değiştirmek:?

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

Düşünceler

cevap

0

deneyin OnPrepared içinde setLayoutParams()()

public void onPrepared(MediaPlayer mp) { 
    ... 
    mSurfaceView.setLayoutParams(new LinearLayout.LayoutParams(vWidth, vHeight)); 
    ... 
}; 
kullanmak