android--(surfaceView实现视频播放、9.path工具使用)

时间:2023-02-09 22:05:33

android--(surfaceView实现视频播放、9.path工具使用)

android--(surfaceView实现视频播放、9.path工具使用)

android--(surfaceView实现视频播放、9.path工具使用)

public class MyVioce extends AppCompatActivity implements SurfaceHolder.Callback {

private SurfaceView surfaceView;

private SurfaceHolder holder;

private MediaPlayer mediaPlayer;//播放器

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my_vioce);

surfaceView = (SurfaceView) findViewById(R.id.surfaceView);

//surfaceHolder是 surfaceView的控制接口
holder = surfaceView.getHolder();

holder.addCallback(this);

holder.setFixedSize(320, 220);//显示的分辨率
}


public void play(View view) {
mediaPlayer.start();
}

public void pause(View view) {
mediaPlayer.pause();
}

public void stop(View view) {
mediaPlayer.stop();
}


/************
* 回调方法
********************/

@Override
public void surfaceCreated(SurfaceHolder holder) {
//创建播放器对象
mediaPlayer = new MediaPlayer();

//设置声音流
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
//设置显示
mediaPlayer.setDisplay(holder);

String path =
Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MOVIES) + "/2.mp4";

try {
//设置播放视频 的资源
mediaPlayer.setDataSource(path);
//准备
mediaPlayer.prepare();


} catch (IOException e) {
e.printStackTrace();
}


}

@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {

}

@Override
public void surfaceDestroyed(SurfaceHolder holder) {
if (mediaPlayer != null) {
/**
* 如果正在播放 ,则停止播放,并释放资源
*/

if (mediaPlayer.isPlaying()) {
mediaPlayer.stop();
mediaPlayer.release();
}
}

}


//退出是释放资源
@Override
protected void onDestroy() {
super.onDestroy();
if (mediaPlayer != null) {
/**
* 如果正在播放 ,则停止播放,并释放资源
*/

if (mediaPlayer.isPlaying()) {
mediaPlayer.stop();
mediaPlayer.release();
}
}
}
}