首页 > 系统 > Android > 正文

简单实现Android本地音乐播放器

2019-12-12 02:57:07
字体:
来源:转载
供稿:网友

音乐播放需要调用service,在此,只是简单梳理播放流程。

public class PlayMusicService extends Service {  //绑定服务 调用服务的方法。  @Override  public IBinder onBind(Intent intent) {    return null;  }}
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  xmlns:tools="http://schemas.android.com/tools"  android:layout_width="match_parent"  android:layout_height="match_parent"  android:orientation="vertical"  tools:context=".MainActivity" >  <EditText    android:id="@+id/et_path"    android:layout_width="fill_parent"    android:layout_height="wrap_content"    android:hint="请输入要播放文件的路径" />  <LinearLayout    android:layout_width="match_parent"    android:layout_height="wrap_content"    android:orientation="horizontal" >    <Button      android:id="@+id/bt_play"      android:onClick="play"      android:layout_width="0dip"      android:layout_height="wrap_content"      android:layout_weight="1"      android:text="播放" />    <Button       android:id="@+id/bt_pause"      android:onClick="pause"      android:layout_width="0dip"      android:layout_height="wrap_content"      android:layout_weight="1"      android:text="暂停" />    <Button       android:id="@+id/bt_stop"      android:onClick="stop"      android:layout_width="0dip"      android:layout_height="wrap_content"      android:layout_weight="1"      android:text="停止" />    <Button       android:id="@+id/bt_replay"      android:onClick="replay"      android:layout_width="0dip"      android:layout_height="wrap_content"      android:layout_weight="1"      android:text="重播" />  </LinearLayout></LinearLayout>
public class MainActivity extends Activity { private EditText et_path; private MediaPlayer mediaPlayer; private Button bt_play,bt_pause,bt_stop,bt_replay; @Override protected void onCreate(Bundle savedInstanceState) {  super.onCreate(savedInstanceState);  setContentView(R.layout.activity_main);  et_path = (EditText) findViewById(R.id.et_path);  bt_play = (Button) findViewById(R.id.bt_play);  bt_pause = (Button) findViewById(R.id.bt_pause);  bt_stop = (Button) findViewById(R.id.bt_stop);  bt_replay = (Button) findViewById(R.id.bt_replay); } /**  * 播放  * @param view  */ public void play(View view) {  String filepath = et_path.getText().toString().trim();  File file = new File(filepath);  if(file.exists()){   try {    mediaPlayer = new MediaPlayer();    mediaPlayer.setDataSource(filepath);//设置播放的数据源。    mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);    mediaPlayer.prepare();//准备开始播放 播放的逻辑是c代码在新的线程里面执行。    mediaPlayer.start();    bt_play.setEnabled(false);    mediaPlayer.setOnCompletionListener(new OnCompletionListener() {     @Override     public void onCompletion(MediaPlayer mp) {      bt_play.setEnabled(true);     }    });   } catch (Exception e) {    e.printStackTrace();    Toast.makeText(this, "播放失败", 0).show();   }  }else{   Toast.makeText(this, "文件不存在,请检查文件的路径", 0).show();  } } /**  * 暂停  * @param view  */ public void pause(View view) {  if("继续".equals(bt_pause.getText().toString())){   mediaPlayer.start();   bt_pause.setText("暂停");   return;  }  if(mediaPlayer!=null&&mediaPlayer.isPlaying()){   mediaPlayer.pause();   bt_pause.setText("继续");  } } /**  * 停止  * @param view  */ public void stop(View view) {  if(mediaPlayer!=null&&mediaPlayer.isPlaying()){   mediaPlayer.stop();   mediaPlayer.release();   mediaPlayer = null;  }  bt_pause.setText("暂停");  bt_play.setEnabled(true); } /**  * 重播  * @param view  */ public void replay(View view) {  if(mediaPlayer!=null&&mediaPlayer.isPlaying()){   mediaPlayer.seekTo(0);  }else{   play(view);  }  bt_pause.setText("暂停"); }}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持武林网。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表