介绍
怎么在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实现音乐播放器功能