在android上和ipod上都能够控制视频窗口的大小,但是当安装在一个android的开发板上时,当播放视频时会全屏。求大神帮助下!

解决方案 »

  1.   

    import java.io.File;
    import java.io.IOException;import android.app.Activity;
    import android.media.AudioManager;
    import android.media.MediaPlayer;
    import android.media.MediaPlayer.OnBufferingUpdateListener;
    import android.media.MediaPlayer.OnCompletionListener;
    import android.media.MediaPlayer.OnPreparedListener;
    import android.os.Bundle;
    import android.os.Environment;
    import android.view.KeyEvent;
    import android.view.SurfaceHolder;
    import android.view.SurfaceHolder.Callback;
    import android.view.SurfaceView;
    import android.webkit.WebView;
    import android.webkit.WebViewClient;public class ElebusDemActivity extends Activity implements
    OnCompletionListener, Callback, OnBufferingUpdateListener,
    OnPreparedListener {
    /** Called when the activity is first created. */
    private WebView webview;
    private SurfaceView sView;
    private String playPath;// 播放文件的路径
    private SurfaceHolder hodler;
    private String path = null; // 播放路径
    private MediaPlayer mediaPlayer;
    private int videoWhith;
    private int videoHeight;
    public int hour; // 小时
    public int minute; // 分钟
    public int second; // 秒m // 768px
    // 1366px http://192.168.0.52/stations/display.php
    @Override
    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    // requestWindowFeature(Window.FEATURE_NO_TITLE);
    setContentView(R.layout.main);
    mediaPlayer = new MediaPlayer();
    sView = (SurfaceView) findViewById(R.id.surfaceView1);
    // 得到SurfaceHolder对象
    hodler = sView.getHolder();
    // 设置回调函数
    hodler.addCallback(this);
    // 设置风格
    hodler.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);


      webview = (WebView) findViewById(R.id.webview);
      webview.getSettings().setJavaScriptEnabled(true);
      webview.loadUrl("http://192.168.0.52/stations/display1.html");
      webview.setWebViewClient(new MyWebViewClient());
     
    } private void play() {
    path = Environment.getExternalStorageDirectory().getPath()
    + File.separatorChar+"VideosZip1" + File.separator + "video.mp4";
    // path="mnt/sdcard-ext"+File.separator+ "VideosZip1" + File.separator + "video.mp4";
    System.out.println("path----------->>>>>>>>>" + path);

    // 构建MediaPlayer对象
    try {
    // 设置媒体文件路径
    mediaPlayer.setDataSource(path); // 设置通过SurfaceView来显示画面
    mediaPlayer.setDisplay(hodler);
    // 准备
    mediaPlayer.prepareAsync();
    // 设置监听事件 } catch (IllegalArgumentException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    } catch (IllegalStateException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    } catch (IOException e) {
    // TODO Auto-generated catch blockj
    e.printStackTrace();
    }
    mediaPlayer.setOnBufferingUpdateListener(this);
    mediaPlayer.setOnCompletionListener(this);
    mediaPlayer.setOnPreparedListener(this);
    mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);  
    }

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
    event.startTracking();
    finish();
    System.exit(0);
    return true;
    } return super.onKeyDown(keyCode, event);
    } public class MyWebViewClient extends WebViewClient {
    public boolean shouldOverviewUrlLoading(WebView view, String url) {
    view.loadUrl(url);
    return true;
    }
    }

    public void onCompletion(MediaPlayer mp) {
    // TODO Auto-generated method stub
    mp.seekTo(0);
    mp.start();
    } public void onPrepared(MediaPlayer mp) {
    // TODO Auto-generated method stub
    videoWhith = mediaPlayer.getVideoWidth();
    videoHeight = mediaPlayer.getVideoHeight(); if (videoWhith != 0 && videoHeight != 0) {
    // 设置视频的宽度和高度
    hodler.setFixedSize(videoWhith, videoHeight);
    // 开始播放
    mediaPlayer.start();
    }
    } public void onBufferingUpdate(MediaPlayer mp, int percent) {
    // TODO Auto-generated method stub } // 更改时触发事件
    public void surfaceChanged(SurfaceHolder holder, int format, int width,
    int height) {
    // TODO Auto-generated method stub } // 当SurfaceHolder创建时触发
    public void surfaceCreated(SurfaceHolder holder) {
    // TODO Auto-generated method stub
    play();
    } public void surfaceDestroyed(SurfaceHolder holder) {
    // TODO Auto-generated method stub }
    // 销毁
    @Override
    protected void onDestroy() {
    // TODO Auto-generated method stub
    super.onDestroy();
    if (mediaPlayer != null) {
    mediaPlayer.release();
    mediaPlayer = null;
    }
    }
    }
      

  2.   

    video播放,是不是被转到overlay去了? overlay通常用全屏方式实现,是最简单最常用的
      

  3.   

    那要怎么去设置这个overlay???