package com.riderim.test; import java.io.IOException; import android.app.Activity; import android.content.Context; import android.media.AudioManager; import android.media.MediaPlayer; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.TextView; import com.example.playertest.R; public class TestEntry extends Activity { Context context = this; Button btn_play; Button btn_stop; TextView tv_time; String url = "http://192.168.2.166:8081/audio/moli.amr"; String url2 = "http://zhangmenshiting2.baidu.com/data2/music/5334074/5334074.mp3?xcode=ac53678a0be857d4be4ea870fa86170e&mid=0.58843699094599"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.test_entry); btn_play = (Button) super.findViewById(R.id.btn_play); btn_stop = (Button) super.findViewById(R.id.btn_stop); tv_time = (TextView) super.findViewById(R.id.time_per); btn_play.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { try { FileDownloader fd = new FileDownloader(); String filepath = fd.downloadFile(url2, new FileDownloader.OnFinishedDownloadingDoing() { @Override public void Start(String filepath) { startUpload(filepath); } }); System.out.println("文件:" + filepath + " 已经完成下载,大小" + filepath.length() / 1024 + "KB"); } catch (Exception e) { e.printStackTrace(); } } }); btn_stop.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { stopplaying(); } }); } MediaPlayer mp = new MediaPlayer(); public void startUpload(String filepath) { long start = System.currentTimeMillis(); try { long end = System.currentTimeMillis(); Log.v("url", "用时:" + (end - start) + "ms"); if (mp != null) { mp.reset(); mp.setAudioStreamType(AudioManager.STREAM_MUSIC); mp.setOnBufferingUpdateListener(new MediaPlayer.OnBufferingUpdateListener() { @Override public void onBufferingUpdate(MediaPlayer mp, int percent) { int millis = mp.getCurrentPosition(); int min = (millis / 1000) / 60; int sec = 0; if ((sec = millis / 1000) >= 60) { sec -= 60; } String time_x = min + ":" + sec; tv_time.setText(time_x + " " + percent + "%"); } }); mp.setDataSource(filepath); mp.prepare(); mp.start(); } } catch (IllegalArgumentException e) { e.printStackTrace(); } catch (IllegalStateException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } public void stopplaying() { if (mp.isPlaying()) { mp.stop(); mp.reset(); } } @Override protected void onDestroy() { super.onDestroy(); mp.release(); } }