android播放器实例,【图片】【Android SurfaceView】视频播放器 简单例子_二次元的程序员吧_百度贴吧...

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

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;

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值