该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
1、TestVedioActivity.Java
package com.open_open.android_ch14_2;
import android.app.Activity;
import android.media.AudioManager;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.os.Environment;
import android.os.SystemClock;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import android.view.View;
import android.widget.Button;
import android.widget.SeekBar;
import android.widget.SeekBar.OnSeekBarChangeListener;
/* 视频播放器 素材:1280x 720 ,来自sd卡
Surface:原始图形缓冲区,
Surface是管理显示内容的数据,储存数据的交换
*/
public class TestVedioActivity extends Activity {
private SurfaceView sfview; //在Surface的基础上,显示视频
private SurfaceHolder holder; //在Surface的基础上,控制尺寸大小和格式
private SeekBar sb; //进度条
private MediaPlayer mp; //媒体播放器
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_test_vedio);
sb=(SeekBar)findViewById(R.id.sb);
sfview=(SurfaceView)findViewById(R.id.sfView);
holder=sfview.getHolder();
sb.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
if(mp!=null)
mp.seekTo(seekBar.getProgress());
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
}
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
}
});
}
public void doPlay(View view){
if(mp!=null)
return;
mp=new MediaPlayer();
String path=Environment.getExternalStorageDirectory().getAbsolutePath()+"/hand.mp4";
try {
mp.setDataSource(path);
mp.setAudioStreamType(AudioManager.STREAM_MUSIC);
mp.setDisplay(holder);
mp.prepare();
sb.setMax(mp.getDuration());
mp.start();
//控制进度条
new Thread(new Runnable() {
@Override
public void run() {
while(mp.getCurrentPosition()<=sb.getMax()){
sb.setProgress(mp.getCurrentPosition());//设置进度条当前进度
SystemClock.sleep(200);
}
}
});
} catch (Exception e) {
e.printStackTrace();
}
}
public void doPause(View view){
if(mp!=null&&mp.isPlaying()){
mp.pause();//暂停
((Button)view).setText("继续播放");
}else if(mp!=null&&mp.isPlaying()==false){
mp.start();//播放
((Button)view).setText("暂停");
}
}
public void doStop(View view){
if(mp!=null){
sb.setProgress(0);
mp.stop();
mp.release();
mp=null;
}
}
}