上代码:
布局文件:
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<SurfaceView
android:id="@+id/surfaceView1"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</FrameLayout>
private View view;
private MediaPlayer player;
private SurfaceView surface;
private SurfaceHolder surfaceHolder;
private int index = 0;
private List<String>ADList;
播放视屏:
public void playVideo(){
try {
//获取视频列表
ADList=FileOperator.GetFilePath(PlatformAttribute.getFilePrefix()+ "adpackage");
} catch (FalconmeException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
surface=(SurfaceView)view.findViewById(R.id.surfaceView1);
surfaceHolder=surface.getHolder(); //SurfaceHolder是SurfaceView的控制接口
surfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS); //设置surfaceview不维护自己的缓冲区,而是等待屏幕的渲染引擎将内容推送到用户面前
surfaceHolder.addCallback(new Callback() {
@Override
public void surfaceDestroyed(SurfaceHolder holder) {
if(player!=null&&player.isPlaying()){ //关闭释放资源
stop();
}
}
@Override
public void surfaceCreated(SurfaceHolder holder) {
start();
}
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width,
int height) {
}
});
}
开始:
public void start(){
player=new MediaPlayer();
player.setAudioStreamType(AudioManager.STREAM_MUSIC); //加载声音
player.setDisplay(surfaceHolder);
//设置显示视频显示在SurfaceView上
try {
player.setDataSource(ADList.get(index));
player.prepare(); //准备
player.start();
player.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer arg0) {
// TODO Auto-generated method stub
try {
index+=1;
if(index==ADList.size()){
index=0;
}
stop();
start();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
} catch (Exception e) {
e.printStackTrace();
}
}
停止:
public void stop(){
player.pause();
player.stop();
player.release();
player = null;
}