音乐
来源:互联网 发布:网络储存硬盘 编辑:程序博客网 时间:2024/04/29 00:19
package com.bawei;
import java.text.SimpleDateFormat;
import java.util.Timer;
import java.util.TimerTask;
import android.R.layout;
import android.media.MediaPlayer;
import android.media.MediaPlayer.OnCompletionListener;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.SeekBar;
import android.widget.SeekBar.OnSeekBarChangeListener;
import android.widget.TextView;
public class MainActivity extends Activity {
private SeekBar seekBar;
private MediaPlayer mediaPlayer;
private TextView tvz, tvs;
private int i;
private Timer timer;
int[] arr = new int[] { R.raw.bag, R.raw.aa, R.raw.qq };@Overrideprotected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 初始化 intint();}private void intint() { tvs = (TextView) findViewById(R.id.tvs); tvz = (TextView) findViewById(R.id.tvz); seekBar = (SeekBar) findViewById(R.id.seek); seekBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() { //停止触摸 @Override public void onStopTrackingTouch(SeekBar seekBar) { int p=seekBar.getProgress(); if(mediaPlayer!=null){ mediaPlayer.seekTo(p); startMusic(i); } } //开始触摸 @Override public void onStartTrackingTouch(SeekBar seekBar) { if(timer!=null){ timer.cancel(); } } @Override public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { // TODO Auto-generated method stub if(fromUser){ tvs.setText(datesim(progress)); } } });}// 开始public void start(View view) { startMusic(i);}// 暂停public void popse(View view) { if(mediaPlayer!=null){ mediaPlayer.pause(); }}//停止public void stope(View view) { stopeMusic();}// 下一首public void next(View view) { i+=1; if(i<arr.length){ stopeMusic(); startMusic(i); }else { i=0; stopeMusic(); startMusic(i); }}// 上一首public void text(View view) { i-=1; if(i>=0){ stopeMusic(); startMusic(i); }else { i=arr.length-1; stopeMusic(); startMusic(i); }}//开始方法public void startMusic(int p){ if(mediaPlayer!=null){ mediaPlayer.start(); }else{ mediaPlayer=MediaPlayer.create(this, arr[p]); mediaPlayer.start(); } mediaPlayer.setOnCompletionListener(new OnCompletionListener() { @Override public void onCompletion(MediaPlayer mp) { //调用下一首 next(null); } }); seekBar();}//停止音乐方法 public void stopeMusic(){ if(mediaPlayer!=null){ if(timer!=null){ timer.cancel(); } mediaPlayer.stop(); mediaPlayer.release(); mediaPlayer=null; } }
//时间换算
public String datesim(long date){
SimpleDateFormat simp=new SimpleDateFormat(“mm:ss”);
String string=simp.format(date);
return string;
}
public void seekBar(){
//获取最大值
int pro=mediaPlayer.getDuration();
seekBar.setMax(pro);
String str=datesim(pro);
tvz.setText(str);
timer=new Timer();
timer.schedule(new TimerTask() {
@Override public void run() { if(mediaPlayer!=null){ runOnUiThread(new Runnable() { @Override public void run() { //得到播放时间 int t=mediaPlayer.getCurrentPosition(); seekBar.setProgress(t); String st=datesim(t); tvs.setText(st); } }); } }}, 0,500);
}
@Override
protected void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
stopeMusic();
}
}
- 音乐
- 音乐
- 音乐
- 音乐
- 音乐
- 音乐、
- 音乐
- 音乐
- 音乐
- 音乐
- 音乐
- 音乐
- 音乐
- 音乐
- 音乐
- 音乐
- 音乐
- 音乐
- 行转列之decode、case when
- Callable、Future、FutureTask 分析
- [SCOI2007]蜥蜴
- CSS text-fill-color属性
- EF Invalid column name 'Discriminator'
- 音乐
- android自定义view之半圆形进度条
- 35.Reverse Linked List-翻转链表(容易题)
- No resource found that matches the given name: attr 'android:actionModeShareDrawable'.
- UTF-8 与 unicode 区别
- Oracle中加密解密的数据库函数,创建(包含游标)和使用存储过程
- Linux安装MySQL的两种方法
- 如何在ubuntu使用hanlp
- spring mvc 2.5.6配置