mp3

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/LinearLayout1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context="${relativePackage}.${activityClass}" >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="進度" />

    <ProgressBar
        android:id="@+id/progressBar1"
        style="?android:attr/progressBarStyleHorizontal"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="音量" />

    <SeekBar
        android:id="@+id/seekBar1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="可調整進度" />

    <SeekBar
        android:id="@+id/seekBar2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

</LinearLayout>
package com.example.app27;

import android.app.Activity;
import android.app.Service;
import android.media.AudioManager;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.os.Handler;
import android.widget.ProgressBar;
import android.widget.SeekBar;

public class MainActivity extends Activity {

    ProgressBar progress;
    MediaPlayer player;
    Handler handler;
    AudioManager am;
    SeekBar sbVolume;
    SeekBar sbMusicPosition;
    Boolean changeSeekBarPosition = true;

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

        am = (AudioManager) this.getSystemService(Service.AUDIO_SERVICE);
        sbVolume = (SeekBar) this.findViewById(R.id.seekBar1);
        sbVolume.setMax(am.getStreamMaxVolume(AudioManager.STREAM_MUSIC));// 最大值
        sbVolume.setProgress(am.getStreamVolume(AudioManager.STREAM_MUSIC));// 目前的值
        sbVolume.setOnSeekBarChangeListener(volumeListener);

        sbMusicPosition = (SeekBar) this.findViewById(R.id.seekBar2);
        sbMusicPosition.setOnSeekBarChangeListener(musicPositionListener);

        progress = (ProgressBar) this.findViewById(R.id.progressBar1);
        player = MediaPlayer.create(this, R.raw.stripme);

        player.start();
        progress.setMax(player.getDuration());// 一定要放在player.start();後面
        sbMusicPosition.setMax(player.getDuration());// 一定要放在player.start();後面

        handler = new Handler();
        handler.post(updateProgress);
    }

    SeekBar.OnSeekBarChangeListener musicPositionListener = new SeekBar.OnSeekBarChangeListener() {

        @Override
        public void onProgressChanged(SeekBar seekBar, int progress,
                boolean fromUser) {
            // TODO Auto-generated method stub
            if (fromUser) {
                player.seekTo(progress);
            }
        }

        @Override
        public void onStartTrackingTouch(SeekBar seekBar) {
            // TODO Auto-generated method stub
            changeSeekBarPosition = false;
        }

        @Override
        public void onStopTrackingTouch(SeekBar seekBar) {
            // TODO Auto-generated method stub
            changeSeekBarPosition = true;
        }

    };

    SeekBar.OnSeekBarChangeListener volumeListener = new SeekBar.OnSeekBarChangeListener() {

        @Override
        public void onStopTrackingTouch(SeekBar seekBar) {
            // TODO Auto-generated method stub

        }

        @Override
        public void onStartTrackingTouch(SeekBar seekBar) {
            // TODO Auto-generated method stub

        }

        @Override
        public void onProgressChanged(SeekBar seekBar, int progress,
                boolean fromUser) {
            // TODO Auto-generated method stub
            am.setStreamVolume(AudioManager.STREAM_MUSIC, progress, 0);
        }
    };

    Runnable updateProgress = new Runnable() {
        @Override
        public void run() {
            // TODO Auto-generated method stub
            progress.setProgress(player.getCurrentPosition());
            if (changeSeekBarPosition) {
                sbMusicPosition.setProgress(player.getCurrentPosition());
            }
            handler.postDelayed(updateProgress, 50);
        }
    };

    @Override
    protected void onDestroy() {
        super.onDestroy();
        handler.removeCallbacks(updateProgress);
        player.stop();
        player.release();//釋放
    }
}