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

Android实现多媒体之播放音乐

程序员文章站 2023-12-20 18:42:40
闲来无聊,最近了解了一下多媒体的一些初步知识。 音频播放主要设计到mediaplayer这个类,播放音频的路径可以来源于三个地方。 1.应用内的音频...

闲来无聊,最近了解了一下多媒体的一些初步知识。

音频播放主要设计到mediaplayer这个类,播放音频的路径可以来源于三个地方。

1.应用内的音频

public class mediaplayactivity extends appcompatactivity {
 private seekbar seekbar;
 private mediaplayer mediaplayer;

 @override
 protected void oncreate(bundle savedinstancestate) {
  super.oncreate(savedinstancestate);
  setcontentview(r.layout.activity_media_play);
  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){
  imagebutton imagebutton= (imagebutton) view;

  if(mediaplayer==null){//代表第一次播放音乐
   mediaplayer = mediaplayer.create(this, r.raw.loser);
   mediaplayer.start();
   //把图标改成暂停的图标(这里的暂停图标就是播放时的状态)
   imagebutton.setimageresource(android.r.drawable.ic_media_pause);

   //获取音乐的总时长
   int duration=mediaplayer.getduration();
   //设置进度条的最大值为音乐的总时长
   seekbar.setmax(duration);

   new mythread();
  }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 mythread extends thread{
  @override
  public void run() {
   super.run();
   while(seekbar.getprogress()<seekbar.getmax()){
    //获取当前音乐播放的位置
    int currentposition=mediaplayer.getcurrentposition();
    //让进度条跟着时间走
    seekbar.setprogress(currentposition);

   }
  }
 }


}

2.  播放内存卡里的音乐,这一部分代码就是替换前面的mediaplayer = mediaplayer.create(this, r.raw.loser);

  //播放内存卡内的音频
   mediaplayer=new mediaplayer();
   //设置类型
   mediaplayer.setaudiostreamtype(audiomanager.stream_music);
   //设置音源
   try {
    mediaplayer.setdatasource(this, uri.parse("file://mnt/sdcard/music/f.mp3"));
    //必须在播放前加载音频文件
    mediaplayer.prepare();

   } catch (ioexception e) {
    e.printstacktrace();
   }

3.播放网络上的音频文件
首先我们要把网络环境搭配,

1).找到我们tomcat放的位置,

Android实现多媒体之播放音乐 

2)然后双击startup.bat运行,最小化界面

3)然后打开cmd命令,输入config找到我们本机的ipv4地址

Android实现多媒体之播放音乐 

4)然后在浏览器上试一下,是否能够打开tomcat的主页

5)在把自己的mp3文件放到tomcat的root目录下

Android实现多媒体之播放音乐 

6)然后在自己的模拟器上,用浏览器同样的去打开,用自己本机的ipv4地址去打开tomcat的主页,在后面加上音乐的名字,看能不能放出来,如果可以,就代表环境已经搭配好了

7)接下来我们上代码

把之前播放内存卡上的音频路径改成网络上的

 //播放网络上的
    mediaplayer.setdatasource(this, uri.parse("http://192.168.43.164/internet.mp3"));
 //必须在播放前加载音频文件(异步准备)
    mediaplayer.prepareasync();

然后准备完成的监听

//监听:准备完成的监听
   mediaplayer.setonpreparedlistener(new mediaplayer.onpreparedlistener() {
    @override
    public void onprepared(mediaplayer mp) {
     mediaplayer.start();
     //把图标改成暂停的图标(这里的暂停图标就是播放时的状态)
     imagebutton.setimageresource(android.r.drawable.ic_media_pause);

     //获取音乐的总时长
     int duration=mediaplayer.getduration();
     //设置进度条的最大值为音乐的总时长
     seekbar.setmax(duration);

     new mythread();
    }
   });

最后,注意一个细节,在manifasit里面加上联网的权限

<uses-permission android:name="android.permission.internet"></uses-permission>

最后运行一下,就大功告成了,界面非常的简单

Android实现多媒体之播放音乐

如果你们想加上歌词啊,时间啊,可以继续完善,但是思路都差不多,今天的分享就到此了

上一篇:

下一篇: