最近在做Android手机获取第三方音乐播放器的音乐信息。一开始头疼的很,采集第三方的信息太难了,后面看了一遍博文是关于怎么监听系统的音乐播放信息,发现在播放下一首音乐的时候会发送广播,广播会包含下一首信息。

Android系统的音乐播放器会发送:

com.android.music.metachanged

那怎么获取第三方的音乐信息?

先反编译了QQ音乐的Apk, 找到它关于player的service,发现里面用的就是“com.android.music.metachaged”

接下来是Kugou,天天动听,千千静听

com.kugou.android.music.metachanged
com.ting.mp3.playinfo_changed

纠结的事出现是分析虾米,多米,Kuwo时候

虾米最新版本在反编译时报错,人家做了防反编译,虽然网上搜了怎么破解,但有点麻烦,留着后面学习。高版本做了防反编译,但你低版本的时候技术还没这么牛吧。我下了一个低版本,果然反编译成功,找到了“com.xiami.meta_changed‘。可虽然能获取到这个广播,但人家并没在广播里放数据,它在获取到广播的时候再去调用获取音乐的方法,这个代码就写的纠结了,到了这一步就没办法搞了。

多米和kuwo两者都没有发送广播,它们处理的方法都是回调,所以这两个也没办法获取。

下面代码是采集第三方音乐信息的代码

       IntentFilter iF = new IntentFilter();
iF.addAction("com.android.music.metachanged");
iF.addAction("com.android.music.playstatechanged");
iF.addAction("com.android.music.playbackcomplete");
iF.addAction("com.android.music.queuechanged");
iF.addAction("com.htc.music.metachanged");
iF.addAction("fm.last.android.metachanged");
iF.addAction("com.sec.android.app.music.metachanged");
iF.addAction("com.nullsoft.winamp.metachanged");
iF.addAction("com.amazon.mp3.metachanged");
iF.addAction("com.miui.player.metachanged");
iF.addAction("com.real.IMP.metachanged");
iF.addAction("com.sonyericsson.music.metachanged");
iF.addAction("com.rdio.android.metachanged");
iF.addAction("com.samsung.sec.android.MusicPlayer.metachanged");
iF.addAction("com.andrew.apollo.metachanged");
iF.addAction("com.kugou.android.music.metachanged");
iF.addAction("com.ting.mp3.playinfo_changed");
registerReceiver(new PlayerReceiver(), iF);

你需要在playerReceiver里面在加上处理广播里的信息

 String albumName = intent.getStringExtra("album");String artist = intent.getStringExtra("artist");String trackName = intent.getStringExtra("track");String xiaMiName=intent.getStringExtra("widget_song_name");System.out.println("The playing album name: " + albumName + " artist: "+ artist + " Track:" + trackName+" xiaMiName:"+xiaMiName);String artistName = intent.getStringExtra("notify_artistname");String audioName = intent.getStringExtra("notify_audioname");

最终上述获取方法走不通,有些第三方的音乐信息获取不到。

还有一种实现方式,在播放音乐的时候,音乐播放器会发送一个notification,里面包含当前音乐的相关信息。这种方式需要在systemUI里面添加捕获代码,抓到特定的notification后,再屏幕取词?需要继续研究下。

这个分析后,发现广播用多了也不是什么好事,很容易被别人获取到数据。

Android获取第三方音乐播放器的音乐信息相关推荐

  1. 使用android studio时酷狗音乐,17 Android Studio开发实战:音乐播放器——浪花音乐...

    手机上的多媒体内容讲究声情并茂.悦目且悦耳,这样才能让用户的感官得到最大享受.影视播放器由于存在视频自身的画面,反而限制了开发者的施展空间:而音乐播放器允许定制播放画面,开发者有足够空间施展拳脚.本节 ...

  2. php文件添加音乐播放器,window_win10系统自带Groove音乐播放器在哪?自带Groove音乐播放器添加音乐等功能的使用教程,   播放器在哪?1 - phpStudy...

    win10系统自带Groove音乐播放器在哪?自带Groove音乐播放器添加音乐等功能的使用教程 播放器在哪? 1.点击桌面的左下端"开始菜单"符号,然后在右上角,找到" ...

  3. iOS开发之网络音乐播放器(SC音乐)(二)

    iOS开发之网络音乐播放器(SC音乐)(二) 前言 iOS开发之网络音乐播放器(SC音乐)(一)已经介绍完播放控制.音乐数据获取解析.歌词显示等.本文在上文的基础上介绍锁屏播放设置,后台播放设置,手势 ...

  4. 【毕业设计】28-基于单片机的音乐播放器简易音乐播放器设计(原理图+源代码+仿真工程+答辩PPT+答辩论文)

    typora-root-url: ./ [毕业设计]28-基于单片机的音乐播放器简易音乐播放器设计(原理图+源代码+仿真工程+答辩PPT+答辩论文) 文章目录 typora-root-url: ./ ...

  5. php 在线调用音乐播放器,宅音乐播放器,HTML5网页播放器,带后台管理及API调用,使用thinkphp编写...

    宅音乐播放器 宅音乐播放器,HTML5网页播放器,集成后台管理及API调用,目前正在开发中,敬请关注 技术栈 后端:thinkphp 5.1 前端:layui 数据库:mysql 演示 整合依赖安装包 ...

  6. mac音乐播放器QQ音乐好用吗?vip绿钻的QQ音乐有哪些版本优势?

    mac音乐播放器QQ音乐好用吗?当然!QQ音乐是Mac平台用户体验极佳的音乐播放器,最新最热的排行榜.歌单.电台.MV天天推荐,智能音乐搜索.猜你喜欢帮你轻松发现音乐.更何况是不需要绿钻和付费包,VI ...

  7. html中加入音乐播放器,HTML网页添加音乐播放器做背景音乐代码-标签audio

    是 HTML 5 的一个新标签,定义声音,比如音乐或其他音频流. 调用格式: src="http://sc1.111ttt.com/2016/1/02/04/195040016323.mp3 ...

  8. 基于android的网络音乐播放器-网络音乐的搜索和展示(五)

    作为android初学者,最近把疯狂android讲义和疯狂Java讲义看了一遍,看到书中介绍的知识点非常多,很难全部记住,为了更好的掌握基础知识点,我将开发一个网络音乐播放器-EasyMusic来巩 ...

  9. 基于android的网络音乐播放器-网络音乐的多线程下载(六)

    作为android初学者,最近把疯狂android讲义和疯狂Java讲义看了一遍,看到书中介绍的知识点非常多,很难全部记住,为了更好的掌握基础知识点,我将开发一个网络音乐播放器-EasyMusic来巩 ...

最新文章

  1. Pip install: ImportError: cannot import name IncompleteRead
  2. java,使用get、post请求url地址
  3. 51 时间片系统 纯c语言,51单片C语言学习.doc
  4. day07 数据类型的内置方法(列表的内置方法)
  5. python视频教学视频哪个好-Python入门视频看哪个好?适合初学者的教学视频推荐...
  6. MYSQL优化---hidba
  7. 框架优点_铝型材框架相比其他框架的优点
  8. java Set无序集合 HashSet 的对象元素唯一性
  9. 如何解决PHP上传中文出错,如何解决php上传中文乱码的问题
  10. C#解决“Emgu.CV.CvInvoke”的类型初始值设定项引发异常 的其中一个办法
  11. java饼状图获取数据集_HighChars3D饼图(从后台获取数据)
  12. 移动硬盘写入数据报错“MS-DOS功能无效”,或移动硬盘内新建文件夹报错0x8000FFFF灾难性错误
  13. 移动硬盘安装win10操作系统
  14. 什么是DirectX
  15. AD19 网络标签 无法连接
  16. android定位周边,Android 使用高德SDK编写周边搜索定位
  17. 并行分布式计算 并行计算机体系结构
  18. Android 签名机制原理解析和V1 、V2签名区别
  19. char ch= 中 什么意思java_在 Java 语言中定义了如下变量: char ch; 下列赋值语句正确的是_韩语初下答案_学小易找答案...
  20. 计算机科学期刊_成为数据科学家的五种科学期刊

热门文章

  1. 重磅!中国数据生产力大赛获奖榜单揭晓
  2. 天空城网络科技隆重推出“新8G卡王
  3. Win10使用EasyBCD安装Ubuntu20.04双系统(windows引导)
  4. OMAPL138 TI官网开发资源合集
  5. !大部分程序员只会写3年代码
  6. Integer.MAX_VALUE和Integer.MIN_VALUE是什么?
  7. java-net-php-python-ssm担保系统项目管理系统计算机毕业设计程序
  8. 去除PDF文件的数字签名、密码
  9. 自制汉字字库,识别汉字(四)(实用篇)
  10. python3输出九九乘法表,python3: 简单4步骤输出九九乘法表