鄭州app開發(fā)android音樂播放器實(shí)例。布局代碼是一個(gè)imagebutton和seekbar。
創(chuàng)新互聯(lián)公司-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比唐縣網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式唐縣網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋唐縣地區(qū)。費(fèi)用合理售后完善,十多年實(shí)體公司更值得信賴。
下面是java代碼
MainActivity.java
package cn.xhhkj.musiccyd;
import androidx.appcompat.app.AppCompatActivity;
import android.content.ComponentName;
import android.content.Intent;
import android.content.ServiceConnection;
import android.media.Mediaplayer;
import android.os.bundle;
import android.os.Handler;
import android.os.Ibinder;
import android.view.View;
import android.widget.Imagebutton;
import android.widget.Seekbar;
import java.io.IOException;
public class MainActivity extends AppCompatActivity {
private static final String TAG = "結(jié)果是";
private static final int UpDATE_pROGRESS = 0;
public String path = "mnt/sdcard/Music/pingguo.mp3";
private Imagebutton ib_play;
private Seekbar sb_progress;
private MusicplayerService.Mybinder musicController;
private MyConnection conn;
private Handler handler = new Handler(){
public void handleMessage(android.os.Message msg) {
switch (msg.what) {
case UpDATE_pROGRESS:
updateprogress();
break;
}
};
};
@Override
protected void onCreate(bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ib_play = findViewbyId(R.id.musicbutton);
sb_progress = findViewbyId(R.id.seekbar);
sb_progress.setOnSeekbarChangeListener(new Seekbar.OnSeekbarChangeListener() {
@Override
public void onprogressChanged(Seekbar seekbar, int progress, boolean fromUser) {
if(fromUser){
musicController.seekTo(progress);
}
}
@Override
public void onStartTrackingTouch(Seekbar seekbar) {
}
@Override
public void onStopTrackingTouch(Seekbar seekbar) {
}
});
Intent service = new Intent(this,MusicplayerService.class);
startService(service);
conn = new MyConnection();
bindService(service, conn, bIND_AUTO_CREATE);
}
public void play(View view) {
// Mediaplayer player = new Mediaplayer();
// try {
// player.setDataSource(path);
// player.prepare();
// player.start();
// } catch (Exception e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
// }
musicController.playpause();
updateplayIcon();
}
class MyConnection implements ServiceConnection{
@Override
public void onServiceConnected(ComponentName name, Ibinder service) {
musicController = (MusicplayerService.Mybinder) service;
updateplayIcon();
sb_progress.setMax(musicController.getDuration());
sb_progress.setprogress(musicController.getCurrentposition());
}
@Override
public void onServiceDisconnected(ComponentName name) {
}
}
private void updateplayIcon(){
if(musicController.isplaying()){
ib_play.setImageResource(R.drawable.pause);
handler.sendEmptyMessage(UpDATE_pROGRESS);
}else{
ib_play.setImageResource(R.drawable.play);
handler.removeMessages(UpDATE_pROGRESS);
}
}
@Override
protected void onStop() {
super.onStop();
handler.removeCallbacksAndMessages(null);
}
@Override
protected void onDestroy() {
super.onDestroy();
unbindService(conn);
}
@Override
protected void onResume() {
super.onResume();
if(musicController!=null){
handler.sendEmptyMessage(UpDATE_pROGRESS);
}
}
private void updateprogress(){
int currentposition = musicController.getCurrentposition();
sb_progress.setprogress(currentposition);
handler.sendEmptyMessageDelayed(UpDATE_pROGRESS, 500);
}
}
MusicplayerService.java
package cn.xhhkj.musiccyd;
import android.app.Service;
import android.content.Intent;
import android.media.Mediaplayer;
import android.os.binder;
import android.os.Ibinder;
import androidx.annotation.Nullable;
public class MusicplayerService extends Service {
private Mediaplayer player;
private String path = "mnt/sdcard/Music/pingguo.mp3";
@Nullable
@Override
public Ibinder onbind(Intent intent) {
return new Mybinder();
}
public class Mybinder extends binder {
public void playpause(){
if(player.isplaying()){
player.pause();
}else{
player.start();
}
}
public boolean isplaying(){
return player.isplaying();
}
public int getDuration(){
return player.getDuration();
}
public int getCurrentposition(){
return player.getCurrentposition();
}
public void seekTo(int msec){
player.seekTo(msec);
}
}
@Override
public void onCreate() {
super.onCreate();
player = new Mediaplayer();
try {
player.setDataSource(path);
player.prepare();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
名稱欄目:android音樂播放器實(shí)例
文章地址:http://www.rwnh.cn/article20/sccoco.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供手機(jī)網(wǎng)站建設(shè)、網(wǎng)站建設(shè)、網(wǎng)站內(nèi)鏈、全網(wǎng)營銷推廣、網(wǎng)站排名、品牌網(wǎng)站設(shè)計(jì)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)