首页> 中国专利> 一种获取音乐播放器当前播放歌曲名称的方法与系统

一种获取音乐播放器当前播放歌曲名称的方法与系统

摘要

本发明公开了一种获取音乐播放器当前播放歌曲名称的方法,包括:确定计算机操作系统中当前所运行的音乐播放器的类型;通过读文件函数ReadFile的文件句柄动态获取当前所运行的音乐播放器正在读取的文件,解析所述音乐播放器正在读取的文件得到所述音乐播放器当前所播放的歌曲名称:本发明方法能够通过确定计算机操作系统中当前所运行的音乐播放器的类型,从而针对不同的音乐播放器类型,采取对应的歌曲名称获取方法获取音乐播放器当前所播放的歌曲名称,从而能够进一步在其他非当前音乐播放器应用程序中显示所述歌曲名称。本发明还提供了相应的获取音乐播放器当前播放歌曲名称的装置。

著录项

  • 公开/公告号CN105608168A

    专利类型发明专利

  • 公开/公告日2016-05-25

    原文格式PDF

  • 申请/专利权人 武汉斗鱼网络科技有限公司;

    申请/专利号CN201510964730.8

  • 发明设计人 杨亮;

    申请日2015-12-18

  • 分类号G06F17/30;

  • 代理机构武汉东喻专利代理事务所(普通合伙);

  • 代理人向彬

  • 地址 430074 湖北省武汉市武汉东湖开发区软件园东路1号软件产业4.1期B1栋11楼

  • 入库时间 2023-12-18 15:29:29

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-11-09

    授权

    授权

  • 2016-06-22

    实质审查的生效 IPC(主分类):G06F17/30 申请日:20151218

    实质审查的生效

  • 2016-05-25

    公开

    公开

说明书

技术领域

本发明属于计算机技术领域,更具体地,涉及一种获取音乐播放器当 前播放歌曲名称的方法与系统。

背景技术

当前市场上有多种音乐播放器,例如比较主流的有QQ音乐播放器、网 易云音乐播放器、百度音乐播放器以及酷狗音乐播放器,各种播放器在播 放音乐时可以在该播放器窗口中显示当前播放歌曲名称以及歌词。然而目 前并没有一种有效的方法能够获取计算机操作系统中所运行音乐播放器当 前所播放的歌曲名称。

发明内容

针对现有技术的以上缺陷或改进需求,本发明提供了一种获取音乐播 放器当前播放歌曲名称的方法与系统,其目的在于获取系统中所运行音乐 播放器当前所播放的歌曲名称,从而能够进一步在其他应用程序窗口中显 示系统中当前运行音乐播放器所播放的歌曲名称。

为实现上述目的,按照本发明的一个方面,本发明提供了一种获取音 乐播放器当前播放歌曲名称的方法,包括如下步骤:

(1)确定计算机操作系统中当前所运行的音乐播放器的类型;

(2)通过读文件函数ReadFile的文件句柄动态获取当前所运行的音 乐播放器正在读取的文件,解析所述音乐播放器正在读取的文件得到所述 音乐播放器当前所播放的歌曲名称。

本发明的一个实施例中,所述步骤(2)中解析所述音乐播放器正在读 取的文件得到所述音乐播放器当前所播放的歌曲名称,具体为:

若所述音乐播放器为QQ音乐播放器,则按照“演唱者-歌曲名 -XXX.qrc”的规则解析上述通过ReadFile函数获取到的文件名,得到QQ 音乐播放器中正在播放的歌曲名称;

若所述音乐播放器是网易云音乐播放器,则通过解析计算机操作系统 中网易云音乐播放器临时安装目录下的 CloudMusicwebdatafilehistory文件来获取当前播放的歌曲名称;

若所述音乐播放器是百度音乐播放器,则按照“歌曲名.lrc”的规则 解析通过ReadFile函数获取到的文件名,得到百度音乐播放器中正在播放 的歌曲名称;

若所述音乐播放器是酷狗音乐播放器,则按照“XXX-歌曲名”的规则 解析通过ReadFile函数获取到的文件名,得到酷狗音乐播放器中正在播放 的歌曲名称。

本发明的一个实施例中,所述确定系统中当前所运行的音乐播放器的 类型为通过获取计算机操作系统中所运行的音乐播放器的进程来判断当前 是否有相应的音乐播放器正在运行,具体为:

如果计算机操作系统中运行有qqmusic.exe进程,则确定当前所运行 的音乐播放器为QQ音乐播放器;

如果计算机操作系统中运行有cloudmusic.exe进程,则确定当前所运 行的音乐播放器为网易云音乐播放器;

如果计算机操作系统中运行有baidumusic.exe进程,则确定当前所运 行的音乐播放器为百度音乐播放器;

如果计算机操作系统中运行有kugou.exe进程,则确定当前所运行的 音乐播放器为酷狗音乐播放器。

本发明的一个实施例中,所述方法还包括:在计算机操作系统的内存 中分配用于存储获取到的歌曲名称的存储区域;在获取歌曲名称之后,将 所述获取到的歌曲名称存储到上述存储区域。

本发明的一个实施例中,所述方法还包括:将所述获取到的歌曲名称 存储到上述存储区域之后,读取所述存储区域中的歌曲名称,并通过 Windows绘制接口函数,在非当前音乐播放器应用程序中显示所述歌曲名 称。

按照本发明的另一方面,还提供了一种获取音乐播放器当前播放歌曲 名称的装置,包括播放器类型判断模块以及歌曲名称获取模块,其中:

所述播放器类型判断模块,用于确定计算机操作系统中当前所运行的 音乐播放器的类型;

所述歌曲名称获取模块,用于通过读文件函数ReadFile的文件句柄动 态获取当前所运行的音乐播放器正在读取的文件,解析所述音乐播放器正 在读取的文件得到所述音乐播放器当前所播放的歌曲名称。

本发明的一个实施例中,所述歌曲名称获取模块解析所述音乐播放器 正在读取的文件得到所述音乐播放器当前所播放的歌曲名称具体为:

若所述音乐播放器为QQ音乐播放器,则按照“演唱者-歌曲名 -XXX.qrc”的规则解析上述通过ReadFile函数获取到的文件名,得到QQ 音乐播放器中正在播放的歌曲名称;

若所述音乐播放器是网易云音乐播放器,则通过解析计算机操作系统 中网易云音乐播放器临时安装目录下的 CloudMusicwebdatafilehistory文件来获取当前播放的歌曲名称;

若所述音乐播放器是百度音乐播放器,则按照“歌曲名.lrc”的规则 解析通过ReadFile函数获取到的文件名,得到百度音乐播放器中正在播放 的歌曲名称;

若所述音乐播放器是酷狗音乐播放器,则按照“XXX-歌曲名”的规则 解析通过ReadFile函数获取到的文件名,得到酷狗音乐播放器中正在播放 的歌曲名称。

本发明的一个实施例中,所述播放器类型判断模块通过获取计算机操 作系统中所运行的音乐播放器的进程来判断当前是否有相应的音乐播放器 正在运行,具体为:

如果计算机操作系统中运行有qqmusic.exe进程,则确定当前所运行 的音乐播放器为QQ音乐播放器;

如果计算机操作系统中运行有cloudmusic.exe进程,则确定当前所运 行的音乐播放器为网易云音乐播放器;

如果计算机操作系统中运行有baidumusic.exe进程,则确定当前所运 行的音乐播放器为百度音乐播放器;

如果计算机操作系统中运行有kugou.exe进程,则确定当前所运行的 音乐播放器为酷狗音乐播放器。

本发明的一个实施例中,所述装置还包括歌曲名称存储模块,所述歌 曲名称存储模块用于:在计算机操作系统的内存中分配用于存储获取到的 歌曲名称的存储区域;在所述歌曲名称获取模块获取歌曲名称之后,将所 述获取到的歌曲名称存储到上述存储区域。

本发明的一个实施例中,所述装置还包括歌曲名称显示模块,所述歌 曲名称显示模块用于:在所述歌曲名称存储模块将所述获取到的歌曲名称 存储到上述存储区域之后,读取所述存储区域中的歌曲名称,并通过 Windows绘制接口函数,在非当前音乐播放器应用程序中显示所述歌曲名 称。

本发明通过确定计算机操作系统中当前所运行的音乐播放器的类型, 从而针对不同的音乐播放器类型,采取对应的歌曲名称获取方法获取音乐 播放器当前所播放的歌曲名称,从而能够进一步在其他非当前音乐播放器 应用程序中显示所述歌曲名称。从而解决了了现有技术中仅能在音乐播放 器窗口中显示当前播放歌曲名称而无法在其他非当前音乐播放器应用程序 中显示所述歌曲名称的问题。

附图说明

图1是本发明实施例中一种获取音乐播放器当前播放歌曲名称的方法 流程图;

图2是本发明实施例中另一种获取音乐播放器当前播放歌曲名称的方 法流程图;

图3是本发明实施例中另一种获取音乐播放器当前播放歌曲名称的装 置结构图;

图4是本发明实施例中另一种获取音乐播放器当前播放歌曲名称的装 置结构图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图 及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体 实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的 本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可 以相互组合。

如图1所示,本发明提供了一种获取音乐播放器当前播放歌曲名称的 方法,包括如下步骤:

S1:确定计算机操作系统中当前所运行的音乐播放器的类型;

具体地,可以通过获取计算机操作系统中所运行的音乐播放器的进程 来判断当前是否有相应的音乐播放器正在运行。

例如,如果计算机操作系统中运行有qqmusic.exe进程,则确定当前 所运行的音乐播放器为QQ音乐播放器;

如果计算机操作系统中运行有cloudmusic.exe进程,则确定当前所运 行的音乐播放器为网易云音乐播放器;

如果计算机操作系统中运行有baidumusic.exe进程,则确定当前所运 行的音乐播放器为百度音乐播放器;

如果计算机操作系统中运行有kugou.exe进程,则确定当前所运行的 音乐播放器为酷狗音乐播放器。

S2:通过读文件函数ReadFile的文件句柄动态获取当前所运行的音乐 播放器正在读取的文件,解析所述音乐播放器正在读取的文件得到所述音 乐播放器当前所播放的歌曲名称。

若所述音乐播放器为QQ音乐播放器,则按照“演唱者-歌曲名 -XXX.qrc”的规则解析上述通过ReadFile函数获取到的文件名,得到QQ 音乐播放器中正在播放的歌曲名称;

例如,QQ音乐播放器当前播放的的歌曲为张学友的《吻别》,则通过 ReadFile函数获取到的文件名应为“张学友-吻别-XXX.qrc”,根据上述规 则解析得到歌曲名称为《吻别》。

若所述音乐播放器是网易云音乐播放器,则通过解析计算机操作系统 中网易云音乐播放器临时安装目录下CloudMusicwebdatafilehistory 文件,例如 (C:UsersAdministratorAppDataLocalNeteaseCloudMusicwebdat afilehistory)文件来获取当前播放的歌曲名称;其中该文件里面的内 容为Json格式的数组对象,当前播放的歌曲为该数组对象中的第一个元素。

例如history文件中的内容为

[{"track":{"album":{"id":3198019,"name":"穿越漩涡 ","picId":"7953867116709596","picUrl":"http://p4.music.126.net/f uJCwPcKlR5s7CwctxuJ1A==/7953867116709596.jpg"},"alias":["电影《太 平轮·彼岸》主题曲"]}]则当前播放的音乐为《穿越漩涡》。

若所述音乐播放器是百度音乐播放器,则按照“歌曲名.lrc”的规则 解析通过ReadFile函数获取到的文件名,得到百度音乐播放器中正在播放 的歌曲名称;

例如,百度音乐播放器当前播放的的歌曲为张学友的《吻别》,则通 过ReadFile函数获取到的文件名应为“吻别.lrc”,根据上述规则解析得 到歌曲名称为《吻别》。

若所述音乐播放器是酷狗音乐播放器,则按照“XXX-歌曲名”的规则 解析通过ReadFile函数获取到的文件名,得到酷狗音乐播放器中正在播放 的歌曲名称。

例如,酷狗音乐播放器当前播放的的歌曲为张学友的《吻别》,则通 过ReadFile函数获取到的文件名应为“xxx-吻别”,根据上述规则解析得 到歌曲名称为《吻别》。

进一步地,为了能够在获取歌曲名称之后将其保存起来以供其他应用 程序使用,如图2所示所述方法还包括:

S3:在计算机操作系统的内存中分配用于存储获取到的歌曲名称的存 储区域;

需要说明的,分配所述存储区域可以在所述步骤S1或者S2之前执行, 也可以与所述步骤S2同时执行,甚至是在所述步骤S2之后执行,只需要 在保存歌曲名称之前分配存储区域即可。

S4:在获取歌曲名称之后,将所述获取到的歌曲名称存储到上述存储区 域。

并且,在将所述获取到的歌曲名称存储到上述存储区域之后,还可以 包括如下步骤:

S5:由其他非当前音乐播放器应用程序读取所述存储区域中的歌曲名 称,并通过Windows绘制接口函数,在非当前音乐播放器应用程序中显示 所述歌曲名称。

例如在一些聊天室或直播应用程序中,可以通过上述方式将主播所播 放的歌曲名称在聊天室或直播大厅中展示出来,这样观众就可以知道主播 当前播放的歌曲名称。

进一步地,如图3所示,本发明还提供了一种获取音乐播放器当前播 放歌曲名称的装置,其特征在于,包括播放器类型判断模块以及歌曲名称 获取模块,其中:

所述播放器类型判断模块,用于确定计算机操作系统中当前所运行的 音乐播放器的类型;

具体地,所述播放器类型判断模块具体可以通过获取计算机操作系统 中所运行的音乐播放器的进程来判断当前是否有相应的音乐播放器正在运 行。

具体地:

如果计算机操作系统中运行有qqmusic.exe进程,则确定当前所运行 的音乐播放器为QQ音乐播放器;

如果计算机操作系统中运行有cloudmusic.exe进程,则确定当前所运 行的音乐播放器为网易云音乐播放器;

如果计算机操作系统中运行有baidumusic.exe进程,则确定当前所运 行的音乐播放器为百度音乐播放器;

如果计算机操作系统中运行有kugou.exe进程,则确定当前所运行的 音乐播放器为酷狗音乐播放器。

所述歌曲名称获取模块,用于通过读文件函数ReadFile的文件句柄动 态获取当前所运行的音乐播放器正在读取的文件,解析所述音乐播放器正 在读取的文件得到所述音乐播放器当前所播放的歌曲名称。

具体地,若所述音乐播放器为QQ音乐播放器,则按照“演唱者-歌曲 名-XXX.qrc”的规则解析上述通过ReadFile函数获取到的文件名,得到QQ 音乐播放器中正在播放的歌曲名称;

若所述音乐播放器是网易云音乐播放器,则通过解析计算机操作系统 中网易云音乐播放器临时安装目录下的 CloudMusicwebdatafilehistory文件来获取当前播放的歌曲名称;

若所述音乐播放器是百度音乐播放器,则按照“歌曲名.lrc”的规则 解析通过ReadFile函数获取到的文件名,得到百度音乐播放器中正在播放 的歌曲名称;

若所述音乐播放器是酷狗音乐播放器,则按照“XXX-歌曲名”的规则 解析通过ReadFile函数获取到的文件名,得到酷狗音乐播放器中正在播放 的歌曲名称。

进一步地如图4所示,所述装置还可以包括歌曲名称存储模块,所述 歌曲名称存储模块用于:

在计算机操作系统的内存中分配用于存储获取到的歌曲名称的存储区 域;

在所述歌曲名称获取模块获取歌曲名称之后,将所述获取到的歌曲名 称存储到上述存储区域。

进一步地如图4所示,所述装置还可以包括歌曲名称显示模块,所述 歌曲名称显示模块用于:

在所述歌曲名称存储模块将所述获取到的歌曲名称存储到上述存储区 域之后,读取所述存储区域中的歌曲名称,并通过Windows绘制接口函数, 在非当前音乐播放器应用程序中显示所述歌曲名称。

本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已, 并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等 同替换和改进等,均应包含在本发明的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号