android第三次作业
生活随笔
收集整理的這篇文章主要介紹了
android第三次作业
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、實現的功能
1.實現播放,暫停,停止,播放上一首,下一首功能
2.實現了進度條與歌曲的匹配
3.實現了播放時候的專輯旋轉效果
4.實現了播放列表
二、項目截圖
播放界面
歌曲界面
?
?三、主要代碼
相關service的配置
package com.example.yc.musicbox;import android.app.Activity; import android.app.Service; import android.content.Intent; import android.content.pm.PackageManager; import android.media.MediaPlayer; import android.os.Binder; import android.os.Environment; import android.os.IBinder; import android.os.Parcel; import android.os.RemoteException; //import android.support.v4.app.ActivityCompat; import android.widget.Toast;import java.io.File;import static android.os.Environment.DIRECTORY_MUSIC;public class MusicService extends Service {public static MediaPlayer mp = new MediaPlayer();//音樂File myfile=new File(Environment.getExternalStorageDirectory(),"Jony J - Team Work.mp3");public MusicService() {try {mp.setDataSource(myfile.getPath());mp.prepare();mp.setLooping(true);} catch (Exception e) {e.printStackTrace();}}private IBinder mBinder = new MyBinder();@Overridepublic IBinder onBind(Intent intent) {// 必須實現的接口return mBinder;}public class MyBinder extends Binder{@Overrideprotected boolean onTransact(int code, Parcel data, Parcel reply, int flags) throws RemoteException {switch (code) {case 101://“還未播放”狀態,點擊開始播放 mp.start();break;case 102://“正在播放”狀態,點擊暫停 mp.pause();break;case 103://“正在暫停”狀態,點擊繼續播放 mp.start();break;case 104://點擊停止,進度條歸零 mp.stop();try {mp.prepare();mp.seekTo(0);} catch (Exception e) {e.printStackTrace();}break;}return super.onTransact(code, data, reply, flags);}}}service與activity的綁定,實現歌曲的讀取
public void service_connection() {mConnection = new ServiceConnection() {@Overridepublic void onServiceConnected(ComponentName name, IBinder service) {mBinder = service;}@Overridepublic void onServiceDisconnected(ComponentName name) {mConnection = null;}};Intent intent = new Intent(this, MusicService.class);startService(intent);bindService(intent, mConnection, Context.BIND_AUTO_CREATE);}利用handle進行UI界面的更行,實現相應進度條的變化以及碟片的轉動
public void update() {new Thread(new Runnable() {@Overridepublic void run() {while (true) {try {Thread.sleep(100);} catch (InterruptedException e) {e.printStackTrace();}handler.obtainMessage(123).sendToTarget();}}}).start();handler = new Handler() {@Overridepublic void handleMessage(Message msg) {super.handleMessage(msg);switch (msg.what) {case 123://UI更新 progressTime.setText(t.format(MusicService.mp.getCurrentPosition()));seekBar.setProgress(MusicService.mp.getCurrentPosition());break;default:break;}}};}拖動進度條改變歌曲進度
seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {@Overridepublic void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {if (fromUser) {MusicService.mp.seekTo(seekBar.getProgress());}}@Overridepublic void onStartTrackingTouch(SeekBar seekBar) {}@Overridepublic void onStopTrackingTouch(SeekBar seekBar) {}});}四、代碼鏈接
?https://git.coding.net/insist_shen/musicplay.git
五、APK鏈接
https://git.coding.net/insist_shen/music_apk.git
六、演示展示
https://pan.baidu.com/s/1iZ_B5ccXk4EK2RwLO0sISg
轉載于:https://www.cnblogs.com/insist666/p/10100144.html
總結
以上是生活随笔為你收集整理的android第三次作业的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 初学计算几何(四)——初识凸包
- 下一篇: 12-11