Giter VIP home page Giter VIP logo

aidlmusicplayer's Introduction

实现功能

  • 使用AIDL服务实现:

    • 音乐播放、暂停、上一曲、下一曲、歌词功能
    • 音乐播放模式:顺序播放 、随机播放、单曲播放
  • 多个页面调用AIDL服务

    • 主页面底部音乐迷你控制器
    • 音乐详情页面
    • 程序后台启动的Notifycation播放器
  • 使用到的库

    • xRecyclerView
    • retrofit2
    • glide
    • okhttp3

实现步骤

  • 使用retrofit完成音乐API的封装 http://blog.csdn.net/zuiaisha1/article/details/61202252
  • 编写核心AIDL服务, 实现服务核心功能
    • 音乐播放、暂停、上一曲、下一曲
    • 音乐播放模式:顺序播放 、随机播放、单曲播放
  • 实现前台页面
    • 主页面和主页面底部音乐迷你控制器
    • 程序后台启动的Notifycation播放器
    • 音乐详情页面并加入歌词功能

效果图

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

博客地址

http://blog.csdn.net/zuiaisha1/article/details/61201146

aidlmusicplayer's People

Contributors

agxxxx avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

aidlmusicplayer's Issues

百度音乐抓包抓不到了

java.lang.NullPointerException: Attempt to read from field 'java.util.List com.aidlmusicplayer.www.bean.SongBillListBean.song_list' on a null object reference
at com.aidlmusicplayer.www.MainActivity$1.onSuccess(MainActivity.java:71)
at com.aidlmusicplayer.www.MainActivity$1.onSuccess(MainActivity.java:68)
at com.aidlmusicplayer.www.net.NetCallBack.onResponse(NetCallBack.java:33)
at retrofit2.ExecutorCallAdapterFactory$ExecutorCallbackCall$1$1.run(ExecutorCallAdapterFactory.java:68)
at android.os.Handler.handleCallback(Handler.java:761)
at android.os.Handler.dispatchMessage(Handler.java:98)
at android.os.Looper.loop(Looper.java:156)
at android.app.ActivityThread.main(ActivityThread.java:6524)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:941)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:831)

添加header即可抓包,解决办法如下

package com.aidlmusicplayer.www.api;

import com.aidlmusicplayer.www.bean.PaySongBean;
import com.aidlmusicplayer.www.bean.RecommandSongListBean;
import com.aidlmusicplayer.www.bean.SearchSongBean;
import com.aidlmusicplayer.www.bean.SongBillListBean;
import com.aidlmusicplayer.www.bean.SongLrcBean;

import java.util.Map;

import retrofit2.Call;
import retrofit2.http.GET;
import retrofit2.http.Headers;
import retrofit2.http.QueryMap;

/**

  • author:agxxxx on 2017/3/3 10:49

  • email:[email protected]

  • blog: http://blog.csdn.net/zuiaisha1

  • github: https://github.com/agxxxx

  • Created by Administrator on 2017/3/3.
    */
    public interface MusicApi {

    String MUSIC_BASE_URL = "http://tingapi.ting.baidu.com/";
    String SUB_URL = "v1/restserver/ting";

    /**

    • 播放音乐
    • @param params
    • @return
      */
      @headers("User-Agent:Mozilla/5.0 (Linux; U; Android 4.0; en-us; GT-I9300 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30")
      @get(SUB_URL)
      Call getPaySongData(@QueryMap Map<String, String> params);

    /**

    • 歌词
    • @param params
    • @return
      */
      @headers("User-Agent:Mozilla/5.0 (Linux; U; Android 4.0; en-us; GT-I9300 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30")
      @get(SUB_URL)
      Call getSongLrcData(@QueryMap Map<String, String> params);

    /**

    • 获取列表
    • @param params
    • @return
      */
      @headers("User-Agent:Mozilla/5.0 (Linux; U; Android 4.0; en-us; GT-I9300 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30")
      @get(SUB_URL)
      Call getSongBillListData(@QueryMap Map<String, String> params);

    /**

    • 搜索
    • @param params
    • @return
      */
      @headers("User-Agent:Mozilla/5.0 (Linux; U; Android 4.0; en-us; GT-I9300 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30")
      @get(SUB_URL)
      Call getSearchSongData(@QueryMap Map<String, String> params);

    /**

    • 获取歌手歌曲列表
    • @param params
    • @return
      */
      @headers("User-Agent:Mozilla/5.0 (Linux; U; Android 4.0; en-us; GT-I9300 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30")
      @get(SUB_URL)
      Call getSingerSongList(@QueryMap Map<String, String> params);

    /**

    • 推荐列表
    • @param params
    • @return
      */
      @headers("User-Agent:Mozilla/5.0 (Linux; U; Android 4.0; en-us; GT-I9300 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30")
      @get(SUB_URL)
      Call getRecommandSongList(@QueryMap Map<String, String> params);

    /**

    • 下载
    • @param params
    • @return
      */
      @headers("User-Agent:Mozilla/5.0 (Linux; U; Android 4.0; en-us; GT-I9300 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30")
      @get(SUB_URL)
      Call downSong(@QueryMap Map<String, String> params);

    /**

    • 获取歌手信息
    • @param params
    • @return
      */
      @headers("User-Agent:Mozilla/5.0 (Linux; U; Android 4.0; en-us; GT-I9300 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30")
      @get(SUB_URL)
      Call getSingerInfo(@QueryMap Map<String, String> params);

}

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.