package com.applite.playmedia; import java.io.IOException; import android.support.v7.app.ActionBarActivity; import android.media.MediaPlayer; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.view.SurfaceHolder; import android.view.SurfaceHolder.Callback; import android.view.SurfaceView; public class SurfaceViewPlayActivity extends ActionBarActivity { private SurfaceView sv; private SurfaceHolder holder; private Callback surfaceHolderCallback=new Callback() { private MediaPlayer mp; @Override public void surfaceDestroyed(SurfaceHolder holder) { // TODO Auto-generated method stub mp.release(); } @Override public void surfaceCreated(SurfaceHolder holder) { // TODO Auto-generated method stub mp=MediaPlayer.create(SurfaceViewPlayActivity.this, R.raw.movie); try { mp.prepare(); } catch (IllegalStateException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } //设置输出目标 mp.setDisplay(holder); mp.start(); } @Override public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) { // TODO Auto-generated method stub //横屏竖屏 } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); sv=new SurfaceView(this); holder=sv.getHolder(); holder.addCallback(surfaceHolderCallback); setContentView(sv); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); if (id == R.id.action_settings) { return true; } return super.onOptionsItemSelected(item); } }