怎么在Android中利用SeekBar实现音乐播放器功能

  介绍

怎么在Android中利用SeekBar实现音乐播放器功能?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

<强>一.Demo简介,

利用AIDL为活动绑定服务,利用处理器机制,发送消息更新SeekBar的UI,利用计时器定时更新SeekBar的进度。实现对音乐的开始播放,到暂停,继续,以及停止播放的功能,以及实现拖动进度条播放音乐的功能只

<强>二.AIDL接口,

利用AIDL机制提供给MainActivity访问MyMusicService的方法,实现播放暂停等功能。

<强>三。主要类代码

1. mymusicservice 

包my.com.mymusicp;
  
  进口android.app.Service;
  进口android.content.Intent;
  进口android.media.MediaPlayer;
  进口android.os.Bundle;
  进口android.os.IBinder;
  进口android.os.Message;
  进口android.os.RemoteException;
  进口android.support.annotation.Nullable;
  进口android.util.Log;
  
  进口java.io.IOException;
  进口java.util.Timer;
  进口java.util.TimerTask;/* *
  *由c_ljf>包my.com.mymusicp;
  
  进口android.Manifest;
  进口android.app.Activity;
  进口android.content.ComponentName;
  进口android.content.Intent;
  进口android.content.ServiceConnection;
  进口android.content.pm.PackageManager;
  进口android.os.Bundle;
  进口handler;
  进口android.os.IBinder;
  进口android.os.Message;
  进口android.os.RemoteException;
  进口android.support.v4.app.ActivityCompat;
  进口android.support.v7.app.AppCompatActivity;
  进口android.view.View;
  进口android.widget.Button;
  进口android.widget.SeekBar;
  
  公开课MainActivity延伸AppCompatActivity {
  私人IMyMusicService IMyMusicService;
  私有静态SeekBar SeekBar;
  私人按钮btpause_play;
  私人布尔b=true;//判断暂停和继续播放
  公共静态处理程序处理程序=new处理程序(){
  @Override
  公共空间handleMessage(消息味精){//处理消息
  捆包=msg.getData ();//获取歌曲长度和当前播放位置,并设置到进度条上
  int时间=bundle.getInt (“duration");
  int currentposition=bundle.getInt (“currentposition");
  seekBar.setMax(持续时间);
  seekBar.setProgress (currentposition);
  }
  };
  
  @Override
  保护空白> & lt;及# 63;xml version=?.0”;编码=皍tf-8", # 63;比;
  & lt;使用
  xmlns: android=癶ttp://schemas.android.com/apk/res/android"
  xmlns:工具=癶ttp://schemas.android.com/tools"
  android: layout_width=癿atch_parent"
  android: layout_height=癿atch_parent"
  android: paddingLeft=癅dimen/activity_horizontal_margin"
  android: paddingRight=癅dimen/activity_horizontal_margin"
  android: paddingTop=癅dimen/activity_vertical_margin"
  android: paddingBottom=癅dimen/activity_vertical_margin"
  工具:上下文=癿y.com.mymusicp.MainActivity"比;
  
  LinearLayout & lt;
  android:取向=癶orizontal"
  android: layout_width=癿atch_parent"
  android: layout_height=皐rap_content"
  android: layout_alignParentTop=皌rue"
  android: layout_alignParentLeft=皌rue"
  android: layout_alignParentStart=皌rue"
  android: id=癅 + id/linearLayout"比;
  
  & lt;按钮
  android: layout_width=皐rap_content"
  android: layout_height=皐rap_content"
  android: layout_weight=?”;
  android:文本=翱疾シ拧?
  android: onClick=皃lay"
  android: id=癅 + id/bt_start"/比;
  
  & lt;按钮
  android: layout_width=皐rap_content"
  android: layout_height=皐rap_content"
  android:文本=霸萃2シ拧?
  android: layout_weight=?”;
  android: onClick=皃ause"
  android: id=癅 + id/bt_pause"/比;
  
  & lt;按钮
  android: layout_width=皐rap_content"
  android: layout_height=皐rap_content"
  android: layout_weight=?”;
  android:文本=巴V共シ拧?
  android: onClick=皊top"
  android: id=癅 + id/bt_stop"/比;
  & lt;/LinearLayout>
  
  & lt; SeekBar
  android: layout_width=癿atch_parent"
  android: layout_height=皐rap_content"
  android: id=癅 + id/seekBar"
  android: layout_below=癅 + id/linearLayout"
  android: layout_alignParentLeft=皌rue"
  android: layout_alignParentStart=皌rue"/比;
  
  & lt;/RelativeLayout>
  
  

<强>五。注册服务,

& lt;及# 63;xml version=?.0”;编码=皍tf-8", # 63;比;   & lt;清单xmlns: android=癶ttp://schemas.android.com/apk/res/android"   包=癿y.com.mymusicp"比;   & lt; uses-permission android: name=癮ndroid.permission.READ_EXTERNAL_STORAGE"/比;   & lt; uses-permission android: name=癮ndroid.permission.WRITE_EXTERNAL_STORAGE"/比;   & lt;应用程序   android: allowBackup=皌rue"   android:图标=癅mipmap/ic_launcher"   android: label=癅string/app_name"   android: supportsRtl=皌rue"   android:主题=癅style/AppTheme"比;   & lt;活动android: name=?MainActivity"比;   & lt; intent-filter>   & lt;行动android: name=癮ndroid.intent.action.MAIN"/比;      & lt;类别android: name=癮ndroid.intent.category.LAUNCHER"/比;   & lt;/intent-filter>   & lt;/activity>   & lt;服务android: name=?MyMusicService"/比;   & lt;/application>      null

怎么在Android中利用SeekBar实现音乐播放器功能