package com.Wei.WebShell;import java.io.FileDescriptor;
import java.io.IOException;import android.app.Activity;
import android.content.pm.ActivityInfo;
import android.content.res.AssetFileDescriptor;
import android.content.res.AssetManager;
import android.media.AudioManager;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.util.Log;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import android.widget.MediaController;
import android.widget.VideoView;public class VideoPlayActivity extends Activity {
private SurfaceView surfaceView;
private String filename;
private int position;

private MediaPlayer videoPlayer = null;

private VideoView videoView;  

public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
//设置横屏
// setContentView(R.layout.main);
setContentView(R.layout.videoplay);
surfaceView = (SurfaceView) this.findViewById(R.id.surfaceView);
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
        
        surfaceView.getHolder().addCallback(new SurfaceCallback());
        
        
        
        surfaceView.getHolder().setFixedSize(176, 144);// 设置分辨率
surfaceView.getHolder().setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
videoPlayer = new MediaPlayer();

//
// videoView = (VideoView) this.findViewById(R.id.videoView);  
// MediaController mc = new MediaController(this);  
//
// videoView.setMediaController(mc);  
//
//
//
// videoView.setVideoPath("file:///splash.mp4");  
// videoView.requestFocus();  
// videoView.start();
}

private void play() throws IOException
{
AssetFileDescriptor afileDescriptor; 
AssetManager assetManager = getAssets();
// afileDescriptor = assetManager.openFd("butterfly.h264");
// afileDescriptor =assetManager.openFd("test.mp4");
afileDescriptor =assetManager.openFd("splash.mp4");
FileDescriptor fd = afileDescriptor.getFileDescriptor();
//File videoFile = new File(Environment.getExternalStorageDirectory(), filename);
videoPlayer.reset();// 重置为初始状态
videoPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
/* 设置Video影片以SurfaceHolder播放 */
videoPlayer.setDisplay(surfaceView.getHolder());
//mediaPlayer.setDataSource(videoFile.getAbsolutePath());
videoPlayer.setDataSource(fd, afileDescriptor.getStartOffset(), afileDescriptor.getLength());
videoPlayer.prepare();// 缓冲
videoPlayer.start();// 播放
}

private final class SurfaceCallback implements SurfaceHolder.Callback
{ public void surfaceCreated(SurfaceHolder holder)
{
if (position > 0 && filename != null)
{
try
{
play();
videoPlayer.seekTo(position);
position = 0;
} catch (IOException e)
{
}
}
}
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height)
{
}
public void surfaceDestroyed(SurfaceHolder holder)
{
if (videoPlayer.isPlaying())
{
position = videoPlayer.getCurrentPosition();
videoPlayer.stop();
}else{
videoPlayer.start();
}
}
}

protected void onResume() {
super.onResume();

try {
play();
} catch (Exception e) {
// TODO Auto-generated catch block
}
}
}

解决方案 »

  1.   


    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout
      xmlns:android="http://schemas.android.com/apk/res/android"
      android:layout_width="fill_parent"
      android:layout_height="fill_parent" android:orientation="vertical">
      <SurfaceView
    android:layout_width="fill_parent" 
        android:layout_height="fill_parent" 
       android:id="@+id/surfaceView"
    />
    </LinearLayout>
      

  2.   

    播放不出来哪里出错了,打出LOG看看啊