package com.example.videotest;
import android.app.Activity;
import android.content.Intent;
import android.media.AudioManager;
import android.media.MediaPlayer;
import android.media.MediaPlayer.OnPreparedListener;
import android.os.Bundle;
import android.util.Log;
import android.view.SurfaceHolder;
import android.view.View;
import android.view.SurfaceHolder.Callback;
import android.view.SurfaceView;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;
public class MainActivity extends Activity implements Callback{
private static MediaPlayer mediaPlayer;
private SurfaceHolder surfaceHolder;
private boolean isFirstEntry=true;
public static final String PATH_INTRO_STRING = "intro/";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initMediaplayer();
SurfaceView surfaceView = (SurfaceView) findViewById(R.id.surface_video);
surfaceHolder = surfaceView.getHolder();
surfaceHolder.addCallback(this);
Button start=(Button) findViewById(R.id.start);
Button gift=(Button) findViewById(R.id.gift);
Button pause=(Button) findViewById(R.id.pause);
start.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
}
});
gift.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
mediaPlayer.pause();
Intent intent=new Intent();
intent.setClass(MainActivity.this, GiftActivity.class);
startActivity(intent);
}
});
pause.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
mediaPlayer.pause();
}
});
}
private void initMediaplayer() {
if (mediaPlayer == null) {
mediaPlayer = new MediaPlayer();
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
mediaPlayer.setDisplay(surfaceHolder);
} else {
// 释放媒体
mediaPlayer.release();
mediaPlayer = null;
}
}
private void playIntro() {
if (mediaPlayer == null) {
mediaPlayer = new MediaPlayer();
} else {
mediaPlayer.reset();
}
try {
mediaPlayer.setDisplay(surfaceHolder);
mediaPlayer.setDataSource("/storage/emulated/0/xl/zip/2014_08_01_bd03b69e-198b-11e4-830b-00163e020b37/intro/intro.xl");
mediaPlayer.prepare();
mediaPlayer.setOnPreparedListener(new OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer arg0) {
mediaPlayer.start();
}
});
} catch (Exception e) {
Toast.makeText(MainActivity.this, "初始化失败,请重试", Toast.LENGTH_SHORT)
.show();
finish();
}
}
@Override
public void surfaceChanged(SurfaceHolder arg0, int arg1, int arg2, int arg3) {
// TODO Auto-generated method stub
}
@Override
public void surfaceCreated(SurfaceHolder arg0) {
if (isFirstEntry) {
playIntro();
isFirstEntry = false;
} else {
if (mediaPlayer != null) {
mediaPlayer.setDisplay(surfaceHolder);
mediaPlayer.start();
}
}
}
@Override
public void surfaceDestroyed(SurfaceHolder arg0) {
// TODO Auto-generated method stub
}
@Override
protected void onRestart() {
super.onRestart();
if (mediaPlayer != null) {
mediaPlayer.start();
} else {
finish();
}
}
@Override
protected void onDestroy() {
super.onDestroy();
if (mediaPlayer != null) {
mediaPlayer.release();
mediaPlayer = null;
}
Log.e("yan", "onDestroy");
}
}
surfaceview的demo
最新推荐文章于 2024-08-23 10:55:41 发布