欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android简易音乐播放器实现代码

程序员文章站 2023-12-18 17:10:58
本文实例为大家分享了android音乐播放器的具体代码,供大家参考,具体内容如下 1.播放项目内的音乐 package com.thm.g150820_an...

本文实例为大家分享了android音乐播放器的具体代码,供大家参考,具体内容如下

1.播放项目内的音乐

package com.thm.g150820_android26_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 seekbar;

@override 
protected void oncreate(bundle savedinstancestate) { 
super.oncreate(savedinstancestate); 
setcontentview(r.layout.activity_main); 
seekbar = (seekbar) findviewbyid(r.id.seekbar);

seekbar.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 progress = seekbar.getprogress();
  //跳转到某个位置播放
  mediaplayer.seekto(progress);
 }
});
}

public void isplayorpause(view view){ 
//把view强转为imagebutton 
imagebutton imagebutton = (imagebutton) view;

if(mediaplayer==null) {
 //实例化mediaplayer
 mediaplayer = mediaplayer.create(this, r.raw.yao);
 //开始播放
 mediaplayer.start();
 //图标修改为暂停的图标
 imagebutton.setimageresource(android.r.drawable.ic_media_pause);
 //获取音乐的总时长
 int duration = mediaplayer.getduration();
 //设置进度条的最大值为音乐的总时长
 seekbar.setmax(duration);

 new mythre().start();

}//判断如果音乐在播放
else if(mediaplayer.isplaying()){
 //就暂停音乐
 mediaplayer.pause();
 //图标修改为播放的图标
 imagebutton.setimageresource(android.r.drawable.ic_media_play);
}else{
 mediaplayer.start();
 //图标修改为暂停的图标
 imagebutton.setimageresource(android.r.drawable.ic_media_pause);
}
}

//写内部类 
class mythre extends thread{ 
@override 
public void run() { 
super.run(); 
while(seekbar.getprogress()<=seekbar.getmax()){

  //获取当前音乐播放的位置
  int currentposition = mediaplayer.getcurrentposition();

  //让进度条动起来
  seekbar.setprogress(currentposition);
  }
 }
}
}

2.播放内存卡中的音乐

package com.thm.g150820_android26_playmusic;

import android.media.audiomanager;
import android.media.mediaplayer;
import android.net.uri;
import android.support.v7.app.appcompatactivity;
import android.os.bundle;
import android.view.view;
import android.widget.imagebutton;
import android.widget.seekbar;

import java.io.ioexception;

public class mainactivity extends appcompatactivity {

 private mediaplayer mediaplayer;
 private seekbar seekbar;

 @override
 protected void oncreate(bundle savedinstancestate) {
  super.oncreate(savedinstancestate);
  setcontentview(r.layout.activity_main);
  seekbar = (seekbar) findviewbyid(r.id.seekbar);

  seekbar.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 progress = seekbar.getprogress();
    //跳转到某个位置播放
    mediaplayer.seekto(progress);
   }
  });
 }


 public void isplayorpause(view view){
  //把view强转为imagebutton
  imagebutton imagebutton = (imagebutton) view;

  if(mediaplayer==null) {
   //实例化mediaplayer
   //播放应用内的音乐
   //mediaplayer = mediaplayer.create(this, r.raw.yao);

   //播放内存卡中的音乐
   mediaplayer = new mediaplayer();

   //设置类型
   mediaplayer.setaudiostreamtype(audiomanager.stream_music);
   //设置音乐路径
   try {
    mediaplayer.setdatasource(this, uri.parse("storage/sdcard0/music/a.mp3"));
    //播放之前准备一下
    mediaplayer.prepare();
   } catch (ioexception e) {
    e.printstacktrace();
   }


   //开始播放
   mediaplayer.start();
   //图标修改为暂停的图标
   imagebutton.setimageresource(android.r.drawable.ic_media_pause);
   //获取音乐的总时长
   int duration = mediaplayer.getduration();
   //设置进度条的最大值为音乐的总时长
   seekbar.setmax(duration);

   new mythre().start();

  }//判断如果音乐在播放
  else if(mediaplayer.isplaying()){
   //就暂停音乐
   mediaplayer.pause();
   //图标修改为播放的图标
   imagebutton.setimageresource(android.r.drawable.ic_media_play);
  }else{
   mediaplayer.start();
   //图标修改为暂停的图标
   imagebutton.setimageresource(android.r.drawable.ic_media_pause);
  }
 }

 //写线程内部类
 class mythre extends thread{
  @override
  public void run() {
   super.run();
   while(seekbar.getprogress()<=seekbar.getmax()){

    //获取当前音乐播放的位置
    int currentposition = mediaplayer.getcurrentposition();

    //让进度条动起来
    seekbar.setprogress(currentposition);
   }
  }
 }
}

3.添加读取内存的权限

Android简易音乐播放器实现代码

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

上一篇:

下一篇: