Android系列之音乐播放器的实现一(应用内音频文件)

来源:互联网 发布:java 注解 注释 编辑:程序博客网 时间:2024/06/04 19:24

音乐播放器实现一是放在应用程序里面的,在后面的博客我会说到在手机内存和网络中的播放器,所以,有需要的话,可以去看看我后面的那些博客!由于思路比较清晰,代码量也不是很多而且挺简单的,所以在这里我就直接放代码了。
xml布局文件:

<?xml version="1.0" encoding="utf-8"?>  <LinearLayout      xmlns:android="http://schemas.android.com/apk/res/android"      xmlns:app="http://schemas.android.com/apk/res-auto"      xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"      android:layout_height="match_parent"      tools:context="com.zking.laci.android27_playmusic.MainActivity"      android:orientation="vertical"      >  <SeekBar      android:layout_width="match_parent"      android:layout_height="wrap_content"      android:id="@+id/sb_main_play"      />      <ImageButton          android:layout_width="wrap_content"          android:layout_height="wrap_content"          android:background="@android:drawable/ic_media_play"          android:onClick="playOrPause"          />  </LinearLayout>  

activity–java代码:

package com.zking.laci.android27_playmusic;  import android.media.MediaPlayer;  import android.support.v7.app.AppCompatActivity;  import android.os.Bundle;  import android.view.View;  import android.widget.ImageButton;  import android.widget.SeekBar;  public class MainActivity extends AppCompatActivity {      private MediaPlayer mediaPlayer;      private SeekBar sb_main_play;      @Override      protected void onCreate(Bundle savedInstanceState) {          super.onCreate(savedInstanceState);          setContentView(R.layout.activity_main);          sb_main_play = (SeekBar) findViewById(R.id.sb_main_play);          sb_main_play.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {              @Override              public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {              }              @Override              public void onStartTrackingTouch(SeekBar seekBar) {              }              @Override              public void onStopTrackingTouch(SeekBar seekBar) {                  //获取当前进度条位置                  int currentPosition=seekBar.getProgress();                  //跳转到某个位置播放                  mediaPlayer.seekTo(currentPosition);              }          });      }      public void playOrPause(View view){          ImageButton ib= (ImageButton) view;          if(mediaPlayer==null){//如果没有歌              mediaPlayer = MediaPlayer.create(this, R.raw.a);              mediaPlayer.start();              ib.setImageResource(android.R.drawable.ic_media_pause);              //获得音乐的播放时间              int time=mediaPlayer.getDuration();              //设置最大值为音乐播放的时间              sb_main_play.setMax(time);              new MyThread().start();          }else if(mediaPlayer.isPlaying()){//如果正在播放              //暂停              mediaPlayer.pause();              //开始图标              ib.setImageResource(android.R.drawable.ic_media_play);          }else {              //开始播放              mediaPlayer.start();              //暂停图标              ib.setImageResource(android.R.drawable.ic_media_pause);          }      }      class MyThread extends Thread{          @Override          public void run() {              super.run();              while(sb_main_play.getProgress()<sb_main_play.getMax()){                  //获得音乐当前的播放位置                  int currentPosition=mediaPlayer.getCurrentPosition();                  sb_main_play.setProgress(currentPosition);              }          }      }  }  
阅读全文
0 0
原创粉丝点击