android_开发之音乐播放器代码package com.Aina.Android;import java. io.BufferedReader; import java. io.File;import java. io.FileInputStream; import java. io.FileNotFoundException;import java. io.FilenameFilter; import java. io. IOException;import java. io. InputStreamReader; import java.util.ArrayList;import java.util. Iterator;import java.util.List;import java.util.TreeMap;import android.app.Activity;import android.app.AlertDialog; import android.app.Notification;import android.app.NotificationManager; import android.app.PendingIntent;import android.app.AlertDialog.Builder; importandroid.content.ActivityNotFoundException;import android.content.DialogInterface; importandroid.content. Intent; import android.graphics.Bitmap; importandroid.graphics.BitmapFactory; import android.media.MediaPlayer; importandroid.os.Bundle;import android.os.Handler;import android.os.Message;import android.util.Log;import android.view.KeyEvent;import android.view.View;
import android.widget.AdapterView; importandroid.widget.ArrayAdapter; import android.widget. ImageButton; importandroid.widget. ImageView; import android.widget.ListView; importandroid.widget.ScrollView; import android.widget.SeekBar; importandroid.widget.TextView; import android.widget.Toast;public class ActivityMain extends Activity{
/** Called when the activity is first created. */private ViewlrcKLOK viewlrcKLOK;private MediaPlayer mMediaPlayer = null;private SeekBar mSeekBar = null;private ListView mListView = null;private ImageButton mLastbtn = null;private ImageButton mStartbtn = null;private ImageButton mPausebtn = null;private ImageButton mStopbtn = null;private ImageButton mNextbtn = null;private TextView mTextView = null;private ScrollView scrollview =null;private ImageView header =null;private TextView lrc = null;private List<String> mMusiclist = null;private int mCurrent = 0;private int count = 0;private boolean isrun = false;
private boolean isauto = false;private static final String PATH = "/sdcard/mp3/";private static TreeMap<Integer, lrcObject> lrc_map;private static int lrc_timeend =0;private long KeyDownOldTime =0;private int KeyDownCount =0;private String songName ="";private String songAuthor ="";private NotificationManager mNotificationManager;private static int NOTIFICATIONS_ID = R. layout.main;
@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState) ;setContentView(R. layout.main) ;mListView = (ListView) this.findViewById(R. id. lv_music) ;mSeekBar = (SeekBar) this.f indViewById(R. id.SeekBar01) ;mTextView = (TextView) this.findViewById(R. id.mTextView) ;viewlrcKLOK = (ViewlrcKLOK) this.findViewById(R. id. lrc_view) ;lrc = (TextView) this.findViewById(R. id. lrc) ;scrollview = (ScrollView) this.findViewById(R. id. scrollview) ;mLastbtn = (ImageButton) this.f indViewById(R. id. imgbtn_last) ;mStartbtn = (ImageButton) this.f indViewById(R. id. imgbtn_start) ;mPausebtn = (ImageButton) this.f indViewById(R. id. imgbtn_pause) ;mStopbtn = (ImageButton) this.f indViewById(R. id. imgbtn_stop) ;
mNextbtn = (ImageButton) this.findViewById(R. id. imgbtn_next) ;header = (ImageView) this.findViewById(R. id.header) ;mMusiclist = new ArrayList<String>() ;mMediaPlayer = new MediaPlayer() ;lrc_map = new TreeMap<Integer, lrcObject>() ;viewlrcKLOK.SetlrcContent("歌词",0,0, ". . . . . . ",0) ;lrc_timeend = 0;lrc. setVisibility(View.GONE) ;mNotif icationManager = (Notif icationManager)getSystemService(NOTIFICATION_SERVICE) ;mMediaPlayer. setOnPreparedListener(prepareListener) ;mMediaPlayer. setOnCompletionListener(CompletionListener) ;mMediaPlayer. setOnErrorListener(ErrorListener) ;
//开始按钮mStartbtn. setOnClickListener(new ImageButton.OnClickListener() {@Overridepublic void onClick(View v) {
//lrc. setVisibility(View.GONE) ; //控件隐藏
PlayMusic(PATH + mMusicl ist.get(mCurrent) ) ;
}
} ) ;
//下一首mNextbtn. setOnClickListener(new ImageButton.OnClickListener() {@Override
public void onClick(View v) {
// TODO Auto-generated method stub
NextMusic() ;
}
} ) ;
//上一首mLastbtn. setOnClickListener(new ImageButton.OnClickListener() {@Overridepublic void onClick(View v) {
// TODO Auto-generated method stub
LastMusic() ;
}
} ) ;
//暂停mPausebtn. setOnClickListener(new ImageButton.OnClickListener() {@Overridepublic void onClick(View v) {
// TODO Auto-generated method stubisrun = true;isauto = false;mPausebtn. setVisibility(View.GONE) ;//隐藏暂停按钮mStartbtn. setVisibility(View.VISIBLE) ;//显示启动按钮
//是否正在播放if (mMediaPlayer. isPlaying() ) {
viewlrcKLOK.Stop() ;mMediaPlayer.pause() ;
}
}
} ) ;
//停止mStopbtn. setOnClickListener(new ImageButton.OnClickListener() {
@Overridepublic void onClick(View v) {
// TODO Auto-generated method stub
StopMusic() ;
}
} ) ;mListView. setOnItemClickListener(new ListView.OnItemClickListener(){
@Overridepublic void onItemClick(AdapterView<?> arg0, View arg1, int arg2,long arg3) {mCurrent = arg2;
StopMusic() ;
PlayMusic(PATH + mMusicl ist.get(mCurrent) ) ;
}
} ) ;mSeekBar
. setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {@Overridepublic void onProgressChanged(SeekBar seekBar,int progress, boolean fromUser) {if (! isauto) {mMediaPlayer. seekTo(progress) ;
}
}
@Overridepublic void onStartTrackingTouch(SeekBar seekBar) {isauto = false;
}
@Overridepublic void onStopTrackingTouch(SeekBar seekBar) {isauto = true;
}
} ) ;this.MusicList() ;
}private void setPlayint(String tickerText, String title, Stringcontent,int drawable) {
Notification notification = new Notification(drawable, tickerText,System.currentTimeMillis() ) ;
PendingIntent contentIntent = PendingIntent.getActivity(this, 0,new Intent(this, ActivityMain.class) , 0) ;notification. setLatestEventInfo(this, title, content, contentIntent) ;mNotif icationManager.notify(NOTIFICATIONS_ID, notif ication) ;
}private MediaPlayer.OnPreparedListener prepareListener = new
MediaPlayer.OnPreparedListener() {public void onPrepared(MediaPlayer mp) {isrun = true;setPlayint(songAuthor, songName, songAuthor, R.drawable. icon) ;lrc_timeend = 0;viewlrcKLOK.SetlrcContent("准备好",0,0, "go,go,go. . ",0) ;viewlrcKLOK.Star() ;count = mMediaPlayer.getDuration() ;
Log. i ("TAG-count", count + "") ;mSeekBar. setMax(count) ;//设置最大值.mTextView. setText("当前播放歌曲:" + mMusiclist.get(mCurrent) ) ;mp. start() ; //开始播放
//Toast.makeText(ActivityMain. this, "开始播放
",Toast.LENGTH_SHORT) . show() ;myHandler. sendEmptyMessage(PROGRESS_CHANGED) ;
}
} ;
//视频播放完成
private MediaPlayer.OnCompletionListener CompletionListener=newMediaPlayer.OnCompletionListener() {
@Overridepublic void onCompletion(MediaPlayer arg0) {mMediaPlayer. stop() ;isauto = true;mSeekBar. setProgress(0) ;viewlrcKLOK.SetlrcContent("准备好",0,0, ". . . . . . ",0) ;viewlrcKLOK.Stop() ;
//Toast.makeText(ActivityMain. this, "播放完
成:",Toast.LENGTH_SHORT) . show() ;
NextMusic() ;
}
} ;
//播放时发现错误private MediaPlayer.OnErrorListener ErrorListener=new
MediaPlayer.OnErrorListener() {
@Overridepublic boolean onError(MediaPlayer mp, int what, int extra) {// TODO Auto-generated method stubmMediaPlayer. stop() ;
Toast.makeText(ActivityMain. this, "发现错误:-错误编
号:"+what,Toast.LENGTH_SHORT) . show() ;return true;
陆零网络是正规的IDC公司,我们采用优质硬件和网络,为客户提供高速、稳定的云计算服务。公司拥有一流的技术团队,提供7*24小时1对1售后服务,让您无后顾之忧。我们目前提供高防空间、云服务器、物理服务器,高防IP等众多产品,为您提供轻松上云、安全防护 为核心数据库、关键应用系统、高性能计算业务提供云端专用的高性能、安全隔离的物理集群。分钟级交付周期助你的企业获得实时的业务响应能力,助力核心业务飞速成...
之前分享过很多次CloudCone的信息,主要是VPS主机,其实商家也提供独立服务器租用,同样在洛杉矶MC机房,分为两种线路:普通优化线路及CN2 GIA,今天来分享下商家的CN2 GIA线路独立服务器产品,提供15-100Mbps带宽,不限制流量,可购买额外的DDoS高防IP,最低每月82美元起,支持使用PayPal或者支付宝等付款方式。下面分享几款洛杉矶CN2 GIA线路独立服务器配置信息。配...
关于HostDare服务商在之前的文章中有介绍过几次,算是比较老牌的服务商,但是商家背景财力不是特别雄厚,算是比较小众的个人服务商。目前主流提供CKVM和QKVM套餐。前者是电信CN2 GIA,不过库存储备也不是很足,这不九月份发布新的补货库存活动,有提供九折优惠CN2 GIA,以及六五折优惠QKVM普通线路方案。这次活动截止到9月30日,不清楚商家这次库存补货多少。比如 QKVM基础的五个方案都...