Android 播放器中容易用到的进度条[音量控制,播放进度]
来源:互联网 发布:windows系统还原 编辑:程序博客网 时间:2024/06/13 12:54
转自:Android 播放器中容易用到的进度条[音量控制,播放进度]
1,显示当前播放进度
2,显示当前音量
package rw.test;
import Android.app.Activity;
import android.media.AudioManager;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.os.Handler;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.SeekBar;
import android.widget.SeekBar.OnSeekBarChangeListener;
import android.widget.TextView;
public class TestMusicActivity extends Activity {
/** Called when the activity is first created. */
private SeekBar SoundseekBar,ProceseekBar2;
private Button button;
private MediaPlayer mediaPlayer;
private TextView nowPlayTime,allTime,volumeView,maxVolumeTextView;
private AudioManager audioManager;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ProceseekBar2=(SeekBar)findViewById(R.id.seekBar1);
SoundseekBar=(SeekBar)findViewById(R.id.seekBar2);
button=(Button)findViewById(R.id.button1);
nowPlayTime=(TextView)findViewById(R.id.textView1);
allTime=(TextView)findViewById(R.id.textView2);
volumeView=(TextView)findViewById(R.id.textView3);
maxVolumeTextView=(TextView)findViewById(R.id.textView4);
button.setOnClickListener(new ButtonListener());
mediaPlayer=new MediaPlayer();
audioManager=(AudioManager)getSystemService(AUDIO_SERVICE);//获取音量服务
int MaxSound=audioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC);//获取系统音量最大值
maxVolumeTextView.setText(String.valueOf(MaxSound));
SoundseekBar.setMax(MaxSound);//音量控制Bar的最大值设置为系统音量最大值
int currentSount=audioManager.getStreamVolume(AudioManager.STREAM_MUSIC);//获取当前音量
SoundseekBar.setProgress(currentSount);//音量控制Bar的当前值设置为系统音量当前值
SoundseekBar.setOnSeekBarChangeListener(new SeekBarListener());
ProceseekBar2.setOnSeekBarChangeListener(new ProcessBarListener());
}
class ButtonListener implements OnClickListener{
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if (mediaPlayer.isPlaying()) {
mediaPlayer.pause();
}
else {
try {
mediaPlayer.reset();
mediaPlayer.setDataSource("/sdcard/test.mp3");
mediaPlayer.prepare();
mediaPlayer.start();
StrartbarUpdate();
int Alltime= mediaPlayer.getDuration();
allTime.setText(ShowTime(Alltime));
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
//播放进度条
@Override
public void onProgressChanged(SeekBar seekBar, int progress,
boolean fromUser) {
// TODO Auto-generated method stub
if (fromUser==true) {
mediaPlayer.seekTo(progress);
nowPlayTime.setText(ShowTime(progress));
}
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
// TODO Auto-generated method stub
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
// TODO Auto-generated method stub
}
}
//音量进度条
@Override
public void onProgressChanged(SeekBar seekBar, int progress,
boolean fromUser) {
// TODO Auto-generated method stub
if (fromUser) {
int SeekPosition=seekBar.getProgress();
audioManager.setStreamVolume(AudioManager.STREAM_MUSIC, SeekPosition, 0);
}
volumeView.setText(String.valueOf(progress));
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
// TODO Auto-generated method stub
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
// TODO Auto-generated method stub
}
}
//时间显示函数,我们获得音乐信息的是以毫秒为单位的,把把转换成我们熟悉的00:00格式
public String ShowTime(int time){
time/=1000;
int minute=time/60;
int hour=minute/60;
int second=time%60;
minute%=60;
return String.format("%02d:%02d", minute, second);
}
Handler handler=new Handler();
public void StrartbarUpdate(){
handler.post(r);
}
Runnable r=new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
int CurrentPosition=mediaPlayer.getCurrentPosition();
nowPlayTime.setText(ShowTime(CurrentPosition));
int mMax=mediaPlayer.getDuration();
ProceseekBar2.setMax(mMax);
ProceseekBar2.setProgress(CurrentPosition);
handler.postDelayed(r, 100);
}
};
}
//把一个名字为test.mp3的文件上传到系统中去,你们懂的.....
00:37 当前播放时间
04:16音乐总时间
11 当前音量
15 总音量
- Android 播放器中容易用到的进度条(音量控制,播放进度)
- Android 播放器中容易用到的进度条[音量控制,播放进度]
- Android 播放器中容易用到的进度条[音量控制,播放进度]
- 【Android】Android开发实现进度条效果,SeekBar的简单使用。音量,音乐播放进度,视频播放进度等
- android播放器音量控制-使用震动示例代码-进度条控制音量
- 视频播放器手势操作控制进度、音量、亮度
- GL音乐播放器--代码实现<四>--进度控制和可隐藏的音量控制
- 【基于QMediaPlayer的简易视频播放器】— 3、结合QSlider实现播放进度控制和音量控制
- android-----音乐播放器的音量控制功能(开发)
- Android音乐播放器SeekBar控制音量变化的实现
- Android 超简单音乐播放器(七)拖动歌曲进度条~音量控制~
- android控制soundpool播放音量
- iOS中AVPlayer的在线播放和播放进度条,音量条以及AVPlayer的后台播放
- iOS中AVPlayer的在线播放和播放进度条,音量条以及AVPlayer的后台播放
- android 视频播放控制 进度条
- Android音乐编程:控制应用程序的音量和播放
- Android音乐编程:控制应用程序的音量和播放
- Android---控制多媒体应用程序的音量和播放
- 灰度图像转存入二维数组并验证
- .NET之权限管理
- 视频监控系统-电子地图编辑器
- 一个简单的文件MD5码自动计算比较器(附源码)
- jQuery心得5--jQuery深入了解串讲1
- Android 播放器中容易用到的进度条[音量控制,播放进度]
- AIX几种 IO 类型概念的介绍
- 浅谈Java中final,finalized,finally
- js操作cookie(创建、修改、删除、获得cookie值)
- java PDFBOX修改pdf图片
- linux下解压命令大全
- Oracle学习:PL_SQL——SQL语句的运用
- 第三周项目四长方体类
- Spring基础