周末不想在家 2017-12-07 08:41 采纳率: 9.1%
浏览 3559
已结题

android 音乐播放器功能快速实现

我现在做一个项目要播放网络音频,大神们推荐一个音乐播放的库或者相关项目,能实现播放网络音乐就行了,保证服务不崩溃可以一直运行。之前网上找的都不合适,谢谢大家了帮忙提个建议吧!

  • 写回答

6条回答 默认 最新

  • qq_36810697 2017-12-07 08:46
    关注

    安卓的音乐播放器简单实现 i
    1 播放
    2 暂停
    3 重播
    4 停止
    1.开始播放 业务逻辑 1 直接播放,当按钮按下时 将播放按钮设置为不可用状态
    2 当音乐播放完毕是将音乐按钮重新设置为可以播放的状态
    [java] view plain copy
    public void play(View view) {

    String filepath = et_path.getText().toString();

    File file = new File(filepath);

    if (file.exists()) {

            try {  
                mPlayer = new MediaPlayer();  
                mPlayer.setDataSource(filepath);  
                mPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);  
                mPlayer.prepare();  
                mPlayer.start();  
    
            } catch (Exception e) {  
    
                Toast.makeText(MainActivity.this, "播放失败", 0).show();  
                e.printStackTrace();  
            }  
            play.setEnabled(false);  
            mPlayer.setOnCompletionListener(new OnCompletionListener() {  
    
                @Override  
                public void onCompletion(MediaPlayer mp) {  
                    play.setEnabled(true);  
    
                }  
            });  
    
        } else {  
            // 播放的文件不存在  
            Toast.makeText(MainActivity.this, "播放的文件不存在", 0).show();  
        }  
    
    }  
    

    2 暂停播放时需要注意 1 首先按下暂停按钮式 音乐停止播放
    2 此时mpayer!=null但是音乐也没有播放 故if (mPlayer !=null && mPlayer.isPlaying())条件不成立 所以用了如下代码if("继续".equals(pause.getText().toString())) { mPlayer.start();pause.setText("暂停"); return; }
    [java] view plain copy
    public void pause(View view) {

    if ("继续".equals(pause.getText().toString())) {

    mPlayer.start();

    pause.setText("暂停");

    return;

    }

        if (mPlayer != null && mPlayer.isPlaying()) {  
            mPlayer.pause();  
            pause.setText("继续");  
        }  
    
    }  
    

    3 重播功能 1 当按下按钮时 音乐重新开始播放 但是 当按过暂停按钮时 if (mPlayer != null &&

    • mPlayer.isPlaying()) 条件就不在成立 故else { play(view); } 同时将暂停按钮恢复至初始状态 [java] view plain copy public void replay(View view) {
      if (mPlayer != null && mPlayer.isPlaying()) {
      mPlayer.seekTo(0);
      } else {
      play(view);
      }
      pause.setText("暂停");
      }

    4停止功能 满足 1 按下按钮音乐停止 将一切状态置为初始化状态
    [java] view plain copy
    public void stop(View view) {

    if (mPlayer != null && mPlayer.isPlaying()) {

    mPlayer.stop();

    mPlayer.release();

    mPlayer = null;

    }

    play.setEnabled(true);

    pause.setText("暂停");

    }

    评论

报告相同问题?

悬赏问题

  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题