音频播放方法及装置
技术领域
本申请涉及音频处理技术领域,尤其涉及一种音频播放方法及装置。
背景技术
随着科技水平的不断进步,用户可以通过终端(例如移动设备、电视等)观看视频或听音乐,而无论是看视频还是听音乐,终端都需要播放相应的音频。在相关技术中,终端在播放音频时,通常是先从服务器获取到音频地址,然后再从获取的音频地址中,获取音频地址指向的文件的文件类型标识,最后利用获取的文件类型标识对应的解码模块,对音频地址指向的文件进行解码,并播放解码后的文件。
然而,有些音频地址中并不包含文件类型标识,对于这类音频地址,终端无法正常播放指向的文件。
发明内容
有鉴于此,本申请提供一种音频播放方法及装置,以解决终端对于不包含文件类型标识的音频地址,无法正常播放对应的文件的问题。
根据本申请实施例的第一方面,提供一种音频播放方法,所述方法包括:
判断接收的音频地址中是否包含属于音频类型的文件类型标识;
若不包含,则查找所述音频地址中是否包含预设关键词;
若查找到,则基于查找到的预设关键词确定所述音频地址指向的文件的文件类型;
利用确定的文件类型对应的解码模块,对所述音频地址指向的文件进行解码并播放。
根据本申请实施例的第二方面,提供一种音频播放装置,所述装置包括:
获取模块,用于利用接收的音频地址获取音频文件;
查找模块,用于在所述音频地址中不包含属于音频类型的文件类型标识时,查找所述音频地址中是否包含预设关键词;
确定模块,用于在查找到预设关键词时,基于查找到的预设关键词确定所述音频地址指向的文件的文件类型;
第一解码播放模块,用于利用确定的文件类型对应的解码模块,对获取的音频文件进行解码并播放。
应用本申请实施例,终端在判断接收的音频地址中不包含属于音频类型的文件类型标识后,可以进一步查找音频地址中是否包含预设关键词,若查找到,则基于查找到的预设关键词确定音频地址指向的文件的文件类型,进而再利用确定的文件类型对应的解码模块,对音频地址指向的文件进行解码并播放。基于上述实现方式,对于不包含文件类型标识的音频地址,通过在音频地址中查找预设关键词来确定文件类型,并利用确定的文件类型对应的解码模块,对音频地址指向的文件进行解码并播放,从而对于不包含文件类型标识的音频地址,达到正常播放的目的,提升了播放器的成功播放率。
附图说明
图1为本申请根据一示例性实施例示出的一种音频播放方法的实施例流程图;
图2为本申请根据一示例性实施例示出的一种终端的硬件结构图;
图3为本申请根据一示例性实施例示出的一种音频播放装置的实施例结构图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
终端在接收到媒体网站服务器(例如Alexa服务器)提供的音频地址URL(UniformResoure Locator,统一资源定位符)后,通常是从音频地址中获取文件类型标识(即文件扩展名),进而再利用音频地址一边下载文件中的音频数据,一边利用获取的文件类型标识对应的解码模块,对下载的音频数据进行解码,并播放解码后的文件。
然而,由于音频网站服务器提供的音频地址均来源于很多第三方供应商,音频地址格式随机性比较大,没有一个统一的规范标准,因此有些第三方供应商提供的音频地址中并没有明确提供文件的文件扩展名,对于此类音频地址,导致终端无法正常播放对应的文件。
图1为本申请根据一示例性实施例示出的一种音频播放方法的实施例流程图,该实施例可以应用在终端(例如移动设备、电视等)上,本申请可以通过安装在终端上的播放器实现。如图1所示,该音频播放方法包括如下步骤:
步骤101:判断接收的音频地址中是否包含属于音频类型的文件类型标识,若包含,则执行步骤102,若不包含,则执行步骤103。
在一实施例中,终端在向服务器(即音频网站服务器)发送播放请求后,会接收到服务器返回的针对该播放请求的音频地址。本领域技术人员可以理解的是,终端接收到的音频地址虽然是服务器发送的,但是该音频地址既可以是本服务器地址,也可以是第三方供应商的服务器地址,也就是说,需要播放的文件既可以来源于发送音频地址的服务器,也可以来源于第三方供应商的服务器。
在一实施例中,终端在对音频地址指向的文件进行解码播放之前,需要选择正确的解码模块才能正常解码播放,由于不同的文件类型对应不同的解码模块,因此需要先根据音频地址准确确定音频地址指向的文件的文件类型。由于通常大部分音频地址中均会携带文件扩展名,因此可以先判断服务器发送的音频地址中是否包含属于音频类型的文件类型标识。
其中,音频地址中的文件类型标识可以为音频地址中携带的文件扩展名,通常文件扩展名位于“?”与其前面的第一个“.”之间,或者位于音频地址末尾,例如http://xxx.mp3?xxx,其中,字符“?”与其前面的第一个“.”之间的内容为mp3,即包含的文件类型标识为mp3。终端中可以预先设置属于音频类型的文件类型标识,从而,可以判断出音频地址中包含的文件类型标识是否属于音频类型,例如属于音频类型的文件类型标识可以有m3u8、m4a、mp3等。
步骤102:利用该音频地址包含的文件类型标识对应的解码模块,对该音频地址指向的文件进行解码并播放。
在一实施例中,终端可以先确定该文件类型标识对应的MIME-Type,进一步利用确定的MIME-Type对应的解码模块,对该音频地址指向的文件进行解码并播放。
其中,在互联网标准中,每一个文件类型标识均对应一个MIME-Type(Multipurpose Internet Mail Extensions Type,多用途互联网邮件扩展类型),MIME-Type为一种描述消息内容类型的互联网标准,对于属于音频类型的文件类别标识对应的MIME-Type,均有一种解码模块对应。例如,文件类型标识m3u8、m4a、mp3对应的MIME-Type分别为application/vnd.apple.mpegurl、audio/mp4、audio/mpeg,其中每一个MIME-Type均对应有一种解码模块。
步骤103:查找音频地址中是否包含预设关键词,若查找不到,则执行步骤104,若查找到,则执行步骤105。
步骤104:利用默认文件类型对应的解码模块,对音频地址指向的文件进行解码并播放。
在一实施例中,由于大多数的文件均可以被mp3文件类型对应的解码模块正常解码,因此默认文件类型可以是mp3,对应的MIME-Type为audio/mpeg。
需要说明的是,如果利用默认文件类型对应的解码模块仍然无法正常解码音频地址指向的文件,则输出无法解码播放的提示消息,以便于用户了解无法播放的问题所在。
进一步地,终端还可以将无法正常解码的音频地址上报给服务器,进而管理员可以从服务器获取这些上报的音频地址,并对这些音频地址进行分析比较,以提取关键词与文件类型的对应关系,并将提取的关键词与文件类型的对应关系增加到终端中,以提升终端正常播放率。
步骤105:基于查找到的预设关键词确定音频地址指向的文件的文件类型。
在一实施例中,若查找到的预设关键词属于第一类关键词,则直接获取预设关键词对应的文件类型标识;若查找到的预设关键词属于第二类关键词,则从音频地址中获取预设关键词后面的内容,并基于获取的内容确定文件类型。
其中,第一类关键词指的是直接有对应的文件类型标识的关键词,第一类关键词可以包括第三方供应商标识、域名以及formats;第二类关键词指的是需要基于该关键词,进一步从音频地址中获取该关键词后面的内容,并基于获取的内容确定文件类型,第二类关键词可以包括format。
下面以具体例子详细说明每个关键词:
1、针对第三方供应商标识
不同的第三方供应商对应不同的文件类型标识。例如,终端接收到的音频地址URL为:
http://c9icyelb.prod.playlists.ihrhls.com/5014_icy?at=1&fb_broadcast=false&deviceid=amzn1.account.AEAOGFAZMV5ZB5RQRVJDZQ643IZA&callLetters=ISUN-FL&streamid=5014&clienttype=amazon&iheartradioversion=1.0&osversion=1.0&devicename=Indigo&terminalid=304&init_id=8169&profileid=420481369,由于该URL中不包含属于音频类型的文件类型标识,而包含第三方供应商标识iheartradio,又由于从服务器(如Alexa服务器)的文档说明可知,ihreartradio的编解码方式为AAC,或者LC-AAC,或者HE-AAC,因此ihreartradio对应的文件类型标识可以是AAC,或者LC-AAC,或者HE-AAC,对应的MIME-Type为audio/AAC。
2、针对域名
不同的域名对应不同的文件类型(MIME-Type),通常存储音频文件的服务器上的文件类型是固定的,因此可以记录固定文件类型的服务器地址与文件类型标识的对应关系,其中,服务器地址即为音频地址中的域名。例如,www.aaa.com的域名关键词“aaa”对应的文件类型标识为mp3,则对应的MIME-Type为audio/mpeg;www.bbb.com的域名关键词“bbb”对应的文件类型标识为AAC,则对应的MIME-Type为audio/AAC;www.ccc.com的域名关键词“ccc”对应的文件类型标识为m3u8,则对应的MIME-Type为application/vnd.apple.mpegurl;以及上述所述的音频地址的域名为:c9icyelb.prod.playlists.ihrhls.com,因此,也可以将c9icyelb.prod.playlists.ihrhls.com作为域名关键词,对应的MIME-Type为audio/AAC。
3、针对formats
由于包含“formats”的音频地址上的音频文件格式为混合格式,即文件类型标识为m3u8,因此对应的MIME-Type可以是application/vnd.apple.mpegurl。例如,终端接收到的音频地址URL为:
https://opml.radiotime.com/Tune.ashx?serial=AGDAAOGVK6EP3JMTPPYSPXBFY3IQ&formats=aac,mp3&id=s224659&partnerId=4JqugguZ,由于该URL中包含的文件类型标识为“ashx”,不属于音频类型,而包含的“formats”后面有文件类型标识,又由于“formats”后面的文件类型标识有2个,即aac和mp3,因此对于包含“formats”的音频地址,对应的MIME-Type为application/vnd.apple.mpegurl。
4、针对format
由于包含“format”的音频地址上的文件格式为非混合格式,因此对应的MIME-Type需要基于“format”后面的内容确定。例如,如果终端接收到的音频地址URL中包含的“format”后面的内容为“aac”,则对应的MIME-Type为audio/AAC。
步骤106:利用确定的文件类型对应的解码模块,对音频地址指向的文件进行解码并播放。
本领域技术人员可以理解的是,由于MIME-Type属于一种描述消息内容类型的互联网标准,因此确定MIME-Type对应的解码模块可以通过相关技术即可实现,本申请不再详述。
本实施例中,终端在判断接收的音频地址中不包含属于音频类型的文件类型标识后,可以进一步查找音频地址中是否包含预设关键词,若查找到,则基于查找到的预设关键词确定音频地址指向的文件的文件类型,进而再利用确定的文件类型对应的解码模块,对音频地址指向的文件进行解码并播放。基于上述实现方式,对于不包含文件类型标识的音频地址,通过在音频地址中查找预设关键词来确定文件类型,并利用确定的文件类型对应的解码模块,对音频地址指向的文件进行解码并播放,从而对于不包含文件类型标识的音频地址,达到正常播放的目的,提升了播放器的成功播放率。
与前述音频播放方法的实施例相对应,本申请还提供了音频播放装置的实施例。
本申请音频播放装置的实施例可以应用在终端上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图2所示,为本申请根据一实施例性实施例示出的一种终端的硬件结构图,除了图2所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的设备通常根据该设备的实际功能,还可以包括其他硬件,对此不再赘述。
图3为本申请根据一示例性实施例示出的一种音频播放装置的实施例结构图,该装置实施例可以应用在终端上。如图3所示,该音频播放装置包括:
判断模块310,用于判断接收的音频地址中是否包含属于音频类型的文件类型标识;
查找模块320,用于在所述音频地址中不包含属于音频类型的文件类型标识时,查找所述音频地址中是否包含预设关键词;
确定模块330,用于在查找到预设关键词时,基于查找到的预设关键词确定所述音频地址指向的文件的文件类型;
第一解码播放模块340,用于利用确定的文件类型对应的解码模块,对所述音频地址指向的文件进行解码并播放。
在一可选的实现方式中,所述确定模块330,具体用于若查找到的预设关键词属于第一类关键词,则直接获取所述预设关键词对应的文件类型标识;若查找到的预设关键词属于第二类关键词,则从所述音频地址中获取所述预设关键词后面的内容,并基于获取的内容确定文件类型。
在一可选的实现方式中,所述第一类关键词包括第三方供应商标识、域名以及formats;所述第二类关键词包括format。
在一可选的实现方式中,所述装置还包括(图3中未示出):
第二解码播放模块,用于在所述判断模块310判断接收的音频地址中是否包含属于音频类型的文件类型标识之后,若所述音频地址中包含属于音频类型的文件类型标识,则利用所述文件类型标识对应的解码模块,对所述音频地址指向的文件进行解码并播放。
在一可选的实现方式中,所述装置还包括(图3中未示出):
第三解码播放模块,用于在所述查找模块320查找所述音频地址中是否包含预设关键词之后,若所述音频地址中不包含预设关键词,则利用默认文件类型对应的解码模块,对获取的音频文件进行解码并播放。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。