surfaceview的demo

来源:互联网 发布:div中加载页面js失效 编辑:程序博客网 时间:2024/06/15 17:44
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/";@Overrideprotected 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() {@Overridepublic void onClick(View arg0) {}});gift.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View arg0) {mediaPlayer.pause();Intent intent=new Intent();intent.setClass(MainActivity.this, GiftActivity.class);startActivity(intent);}});pause.setOnClickListener(new OnClickListener() {@Overridepublic 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() {@Overridepublic void onPrepared(MediaPlayer arg0) {mediaPlayer.start();}});} catch (Exception e) {Toast.makeText(MainActivity.this, "初始化失败,请重试", Toast.LENGTH_SHORT).show();finish();}}@Overridepublic void surfaceChanged(SurfaceHolder arg0, int arg1, int arg2, int arg3) {// TODO Auto-generated method stub}@Overridepublic void surfaceCreated(SurfaceHolder arg0) {if (isFirstEntry) {playIntro();isFirstEntry = false;} else {if (mediaPlayer != null) {mediaPlayer.setDisplay(surfaceHolder);mediaPlayer.start();}}}@Overridepublic void surfaceDestroyed(SurfaceHolder arg0) {// TODO Auto-generated method stub}@Overrideprotected void onRestart() {super.onRestart();if (mediaPlayer != null) {mediaPlayer.start();} else {finish();}}@Overrideprotected void onDestroy() {super.onDestroy();if (mediaPlayer != null) {mediaPlayer.release();mediaPlayer = null;}Log.e("yan", "onDestroy");}}


0 0
原创粉丝点击