本发明涉及计算机领域,特别涉及一种音频播放方法和装置。
背景技术:
随着经济的发展和人们生活水平的提高,越来越多的人会利用闲暇时间进行放松娱乐。其中,听音乐作为一种流行的消遣方式受到人们的普遍欢迎。
在传统音乐播放流程中,由音频文件解码而成的音频数据流会经由操作系统音频框架和音频驱动程序,并最终传输到音频硬件上完成音频播放。
但是,这种传统的音乐播放流程,音频质量容易受到操作系统音频框架和音频驱动程序的影响,无法提供高质量的音频播放。
技术实现要素:
为了解决现有技术的问题,本发明实施例提供了一种音频播放方法和装置,以提高音频播放质量。所述技术方案如下:
一方面,提供了一种音频播放方法,所述方法包括:
将由音频文件解码而成的音频数据流直接发往通用数据传输接口;
连接到所述通用数据传输接口上的音频硬件在接收到所述音频数据流后,对所述音频数据流进行模拟输出。
其中,所述通用数据传输接口可以为以下任一种接口:通用串行总线(usb)接口、安全数字输入输出(sdio)接口、串行高级技术附件(sata)接口、以太网接口、无线局域网(wifi)接口。
在一个实施例中,在将由音频文件解码而成的音频数据流直接发往通用数据传输接口之前,所述方法还可包括:
确定是否存在相容的音频硬件;
所述将由音频文件解码而成的音频数据流直接发往通用数据传输接口包括:
确定存在相容的音频硬件,将由音频文件解码而成的音频数据流直接发往所述相容的音频硬件所连接的通用数据传输接口。
可选地,所述确定是否存在相容的音频硬件包括:
获取各个通用数据传输接口上连接的音频硬件的标识,根据所述标识确定各个通用数据传输接口上连接的音频硬件是否为相容的音频硬件;
或者,通过网络设备发现协议确定是否存在相容的音频硬件。
可选地,在一个实施例中,所述方法还可包括:
在首次发送音频数据流之前或者在音频数据流参数发生变化时,向所述通用数据传输接口发送音频数据流参数,所述音频数据流参数包括采样率、位深度、通道数和增益;
所述音频硬件根据所述音频数据流参数进行配置。
另一方面,提供一种音频播放装置,所述装置包括:
解码模块,用于将音频文件解码成音频数据流,并将由音频文件解码而成的音频数据流直接发往通用数据传输接口;
通用数据传输接口,用于接收音频数据流,并向音频硬件传输接收到的音频数据流;
音频硬件,用于连接到所述通用数据传输接口上,并对接收的所述音频数据流进行模拟输出。
其中,所述通用数据传输接口可以为以下任一种接口:通用串行总线(usb)接口、安全数字输入输出(sdio)接口、串行高级技术附件(sata)接口、以太网接口、无线局域网(wifi)接口。
可选地,在将由音频文件解码而成的音频数据流直接发往通用数据传输接口之前,所述解码模块还用于:
确定是否存在相容的音频硬件;
确定存在相容的音频硬件,将由音频文件解码而成的音频数据流直接发往所述相容的音频硬件所连接的通用数据传输接口。
可选地,所述解码模块具体用于:
获取各个通用数据传输接口上连接的音频硬件的标识,根据所述标识确定各个通用数据传输接口上连接的音频硬件是否为相容的音频硬件;
或者,通过网络设备发现协议确定是否存在相容的音频硬件。
可选地,所述解码模块还用于:
在首次发送音频数据流之前或者在音频数据流参数发生变化时,向所述通用数据传输接口发送音频数据流参数,所述音频数据流参数包括采样率、位深度、通道数和增益;
所述音频硬件,还用于根据所述音频数据流参数进行配置。
另一方面,还可以提供一种终端,所述终端包括至少一个处理器、至少一个存储器、通信接口和总线。处理器、存储器和通信接口通过总线连接并完成相互间的通信。存储器用于存储可执行程序代码,该程序代码包括计算机操作指令。存储器可以为高速ram存储器,也可能为非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。
处理器通过读取存储器中存储的可执行程序代码来运行与所述可执行程序代码对应的程序,以用于执行上面音频播放方法中描述的部分或全部步骤。
本发明实施例提供的音频播放方法、装置和终端,通过将音频数据流直接发往通用数据传输接口,并由连接数据传输接口的音频硬件对所述音频数据流进行模拟输出,此过程中无需经由操作系统音频框架和音频驱动程序的介入处理,如此,可避免操作系统音频框架和音频驱动程序对音频数据流的修改,不会引入延迟,提高了响应速度和音频播放质量。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种音频播放方法的流程图;
图2是本发明实施例提供的另一种音频播放方法的流程图;
图3是本发明实施例提供的音频播放装置的结构框图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
图1是本发明实施例提供的一种音频播放方法的流程图。参见图1,本发明实施例提供的音频播放方法可包括:
11、将由音频文件解码而成的音频数据流直接发往通用数据传输接口。
在本步骤11之前,可先对终端中的所有音频文件进行扫描。此过程可以在打开音频播放软件后自动进行,也可以向用户提示“是否需要扫描所有音频文件”,并在用户确认扫描后,扫描终端中的所有音频文件。待终端中的所有音频文件被扫描并呈现在用户面前之后,即可接收用户对音频文件的选择指令,并根据该选择指令,将选择的音频文件进行解码成音频数据流。
在本发明实施例中,音频文件可以为各种不同类型的音频格式,包括但不限于,mp3、wav、wma、asf、aac、flac等。音频数据流可以为pcm(脉冲编码调制,pulsecodemodulation)形式或dsd(直接比特流数字编码,directsteamdigital)形式的音频数据流。
其中,通用数据传输接口是一般pc、手机或其他音频播放设备等主机上常见的、具备可靠数据传输能力的接口,不常用于传输音频流,而是用于大规模数据传输。本发明实施例中的通用数据传输接口可以为以下任一种接口:usb接口、sdio接口、sata接口、以太网接口、wifi接口等。
本步骤中,将由音频文件解码而成的音频数据流直接发往通用数据传输接口意味着,由音频文件解码而成的音频数据流的传输不会经由操作系统音频框架和音频驱动程序而是直接发给通用数据传输接口,亦即操作系统音频框架和音频驱动程序无法对音频数据流进行任何介入处理。
需要指出的是,如果本步骤是首次发送音频数据流,则在本步骤之前,还可向所述通用数据传输接口发送音频数据流参数,所述音频数据流参数包括采样率、位深度、通道数和增益,以便音频硬件根据所述音频数据流参数进行配置。同时,在音频数据流参数发生变化时,也可向所述通用数据传输接口发送音频数据流参数,所述音频数据流参数包括采样率、位深度、通道数和增益,以便音频硬件根据变化后的音频数据流参数进行配置。配置时,举例而言,音频硬件把采样率配置到时钟电路,位深度、通道数配置到dac、把增益配置到放大电路等。
12、连接到所述通用数据传输接口上的音频硬件在接收到所述音频数据流后,对所述音频数据流进行模拟输出。
其中,本发明实施例中的音频硬件可以为定制的音频硬件,支持本发明实施例这种全新的音频播放方式。该音频硬件作为通用数据传输接口的数据接收端,接收音频数据流(例如pcm数据流),并对音频数据流进行模拟输出。定制的音频硬件可具备独立稳定的供电能力、高精度的时钟电路、独立的dac(数模转换,digital-to-analogconverter)芯片和高品质的放大电路,可以提供优秀的音质。
同时,步骤11中将音频文件解码成音频数据流并发出的音频播放软件也可以为定制的播放软件,特点是并不如普通音频程序那样调用操作系统音频框架来输出音频,而是调用通用数据传输接口把音频数据传递出去,支持本发明实施例中提出的这种全新的音频文件播放方式。
需要指出的是,为确定连接到通用数据传输接口上的音频硬件是支持本发明实施例这种全新的音频播放方式的音频硬件。在步骤11将由音频文件解码而成的音频数据流直接发往通用数据传输接口之前,可先进行硬件扫描,确定通用数据传输接口上是否连接有音频硬件,以及确定连接到通用数据传输接口上的音频硬件是否是与本发明实施例这种全新的音频播放方式相容的音频硬件。
其中,确定连接到通用数据传输接口上的音频硬件是否是与本发明实施例这种全新的音频播放方式相容的音频硬件的一种具体方式可以为:获取各个通用数据传输接口上连接的音频硬件的标识,根据所述标识确定各个通用数据传输接口上连接的音频硬件是否为相容的音频硬件。具体地,各个音频硬件厂商在音频硬件出厂时都会给生产的每个音频硬件分配一个唯一标识(例如mac地址),通过识别此唯一标识,即可确定出该音频硬件是否为相容的音频硬件。此种方式可以适用于通用数据传输接口为usb接口、sdio接口、sata接口等的情况。另一种确定连接到通用数据传输接口上的音频硬件是否是与本发明实施例这种全新的音频播放方式相容的音频硬件的具体方式可以为:通过网络设备发现协议确定是否存在相容的音频硬件。其中,所述网络设备发现协议可以为upnp(通用即插即用,universalplugandplay)协议等。具体地,可以向通用数据传输接口发送网络设备发现协议消息。如果有回应,则确定存在相容的音频硬件;如果没有回应,可确定不存在相容的音频硬件。通过网络设备发现协议确定是否存在相容的音频硬件这种方式可以应用于通用数据传输接口为以太网接口或wifi接口等的情况。
在本发明实施例中,如果发现通用数据传输接口上没有连接音频硬件,则可提示用户连接相容的音频硬件。如果发现通用数据传输接口上连接的不是相容的音频硬件,则可提示不允许播放音频文件、提示更换音频硬件或提示是否采用传统的音频播放方式(即由操作系统音频框架和音频驱动程序输出音频数据流)进行播放等。当然,在本发明实施例提供的音频播放方式在现实生活中被普遍采用的情况下,也可不确定连接到通用数据传输接口上的音频硬件是否是与本发明实施例这种全新的音频播放方式相容的音频硬件,而默认连接到通用数据传输接口上的音频硬件都是支持这种全新的音频播放方式的音频硬件。
在传统的音频播放流程中,操作系统音频框架和音频驱动程序为了保证对应用程序以及音频硬件的兼容性,会有可能修改来自音乐应用程序的音频数据,从而引入延迟和影响音质,也会增加系统资源消耗。同时,如果操作系统音频框架或音频驱动程序不支持某些特性,则可能导致整个流程无法完成。例如,若操作系统不支持dsd音频数据流,则哪怕音频播放器、音频硬件能支持,也无法播放。
本发明实施例提供的音频播放方法,通过将音频数据流直接发往通用数据传输接口,并由连接数据传输接口的音频硬件对所述音频数据流进行模拟输出,此过程中无需经由操作系统音频框架和音频驱动程序的介入处理,如此,可避免操作系统音频框架和音频驱动程序对音频数据流的修改,不会引入延迟,提高了响应速度和音频播放质量。
图2是本发明实施例提供的另一种音频播放方法的流程图。参见图2,本发明实施例提供的频播放方法可包括:
21、触发音频播放。
其中,触发音频播放可以具体为接收用户对音频文件的选择指令。
22、通过硬件发现,确定通用数据传输接口上是否存在相容的音频硬件。
其中,本发明实施例中提及的“相容的音频硬件”为支持本发明实施例提供的这种音频播放方式的音频硬件,可以为定制的音频硬件。
本步骤所述确定是否存在相容的音频硬件包括:获取各个通用数据传输接口上连接的音频硬件的标识,根据所述标识确定各个通用数据传输接口上连接的音频硬件是否为相容的音频硬件;或者,通过网络设备发现协议确定是否存在相容的音频硬件。
23、确定不存在相容的音频硬件,提示不允许播放音频文件、提示更换音频硬件或提示是否采用传统的音频播放方式。
24、确定存在相容的音频硬件,将音频文件解码成音频数据流。
其中,音频文件可以为主机内部存储的音频文件,也可以为来源于网络的音频文件。
25、将音频数据流直接发往通用数据传输接口。
其中,在首次发送音频数据流之前或者在音频数据流参数发生变化时,还可向所述通用数据传输接口发送音频数据流参数,所述音频数据流参数包括采样率、位深度、通道数和增益,以便所述音频硬件根据所述音频数据流参数进行配置。例如,音频硬件把采样率配置到时钟电路,位深度、通道数配置到dac、把增益配置到放大电路等。
26、连接到所述通用数据传输接口上的定制音频硬件在接收到所述音频数据流后,对所述音频数据流进行模拟输出。
本发明实施例提供的音频播放方法,通过将音频数据流直接发往通用数据传输接口,并由连接数据传输接口的音频硬件对所述音频数据流进行模拟输出,此过程中无需经由操作系统音频框架和音频驱动程序的介入处理,如此,可避免操作系统音频框架和音频驱动程序对音频数据流的修改,不会引入延迟,提高了响应速度和音频播放质量。
图3是本发明实施例提供的一种音频播放装置的结构框图。参照图3,本发明实施例提供的音频播放装置300可以为pc、手机等,且可包括解码模块301、通用数据传输接口302和音频硬件303。其中:
解码模块301,用于将音频文件解码成音频数据流,并将由音频文件解码而成的音频数据流直接发往通用数据传输接口;
通用数据传输接口302,用于接收音频数据流,并向音频硬件传输接收到的音频数据流;
音频硬件303,用于连接到所述通用数据传输接口上,并对接收的所述音频数据流进行模拟输出。
其中,所述通用数据传输接口可以为以下任一种接口:usb接口、sdio接口、sata接口、以太网接口、wifi接口。
可选地,在将由音频文件解码而成的音频数据流直接发往通用数据传输接口之前,所述解码模块301还用于:
确定是否存在相容的音频硬件;
确定存在相容的音频硬件,将由音频文件解码而成的音频数据流直接发往所述相容的音频硬件所连接的通用数据传输接口。
可选地,在确定是否存在相容的音频硬件时,所述解码模块301可具体用于:
获取各个通用数据传输接口上连接的音频硬件的标识,根据所述标识确定各个通用数据传输接口上连接的音频硬件是否为相容的音频硬件;
或者,通过网络设备发现协议确定是否存在相容的音频硬件。
可选地,所述解码模块301还可用于:
在首次发送音频数据流之前或者在音频数据流参数发生变化时,向所述通用数据传输接口发送音频数据流参数,所述音频数据流参数包括采样率、位深度、通道数和增益;
所述音频硬件303,还用于根据所述音频数据流参数进行配置。
本发明实施例提供的音频播放装置,通过将音频数据流直接发往通用数据传输接口,并由连接数据传输接口的音频硬件对所述音频数据流进行模拟输出,此过程中无需经由操作系统音频框架和音频驱动程序的介入处理,如此,可避免操作系统音频框架和音频驱动程序对音频数据流的修改,不会引入延迟,提高了响应速度和音频播放质量。
需要说明的是:上述实施例提供的音频播放装置仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将歌词处理的装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的音频播放装置和音频播放方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
此外,本发明实施例还可以提供一种终端,所述终端包括至少一个处理器、至少一个存储器、通信接口和总线。处理器、存储器和通信接口通过总线连接并完成相互间的通信。所述总线可以是工业标准体系结构(industrystandardarchitecture,简称为isa)总线、外部设备互连(peripheralcomponent,简称为pci)总线或扩展工业标准体系结构(extendedindustrystandardarchitecture,简称为eisa)总线等。所述总线可以分为地址总线、数据总线、控制总线等。
存储器用于存储可执行程序代码,该程序代码包括计算机操作指令。存储器可以为高速ram存储器,也可能为非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。
处理器通过读取存储器中存储的可执行程序代码来运行与所述可执行程序代码对应的程序,以用于执行上面音频播放方法实施例中描述的部分或全部步骤。
本发明实施例提供的音频播放方法、装置和终端可取得以下技术效果:
1)能避免操作系统音频框架和音频驱动程序对音频数据流的修改,显著提高音频播放质量、加快响应速度;
2)只需要定制音频播放器与定制音频硬件即可协商支持特性,无需兼顾操作系统音频框架和音频驱动程序;
3)通用性强,在一般的个人计算机(pc)、手机等设备上都可以实现。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
技术特征:
1.一种音频播放方法,其特征在于,所述方法包括:
将由音频文件解码而成的音频数据流不经过操作系统音频框架和音频驱动程序直接发往通用数据传输接口;
连接到所述通用数据传输接口上的音频硬件在接收到所述音频数据流后,对所述音频数据流进行模拟输出。
2.根据权利要求1所述的方法,其特征在于,所述通用数据传输接口为以下任一种接口:通用串行总线usb接口、安全数字输入输出sdio接口、串行高级技术附件sata接口、以太网接口、无线局域网wifi接口。
3.根据权利要求1或2所述的方法,其特征在于,在将由音频文件解码而成的音频数据流直接发往通用数据传输接口之前,所述方法还包括:
确定是否存在相容的音频硬件;
所述将由音频文件解码而成的音频数据流直接发往通用数据传输接口包括:
确定存在相容的音频硬件,将由音频文件解码而成的音频数据流直接发往所述相容的音频硬件所连接的通用数据传输接口。
4.根据权利要求3所述的方法,其特征在于,所述确定是否存在相容的音频硬件包括:
获取各个通用数据传输接口上连接的音频硬件的标识,根据所述标识确定各个通用数据传输接口上连接的音频硬件是否为相容的音频硬件;
或者,通过网络设备发现协议确定是否存在相容的音频硬件。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在首次发送音频数据流之前或者在音频数据流参数发生变化时,向所述通用数据传输接口发送音频数据流参数,所述音频数据流参数包括采样率、位深度、通道数和增益;
所述音频硬件根据所述音频数据流参数进行配置。
6.一种音频播放装置,其特征在于,所述装置包括:
解码模块,用于将音频文件解码成音频数据流,并将由音频文件解码而成的音频数据流不经过操作系统音频框架和音频驱动程序直接发往通用数据传输接口;
通用数据传输接口,用于接收音频数据流,并向音频硬件传输接收到的音频数据流;
音频硬件,用于连接到所述通用数据传输接口上,并对接收的所述音频数据流进行模拟输出。
7.根据权利要求6所述的装置,其特征在于,所述通用数据传输接口为以下任一种接口:通用串行总线usb接口、安全数字输入输出sdio接口、串行高级技术附件sata接口、以太网接口、无线局域网wifi接口。
8.根据权利要求6或7所述的装置,其特征在于,在将由音频文件解码而成的音频数据流直接发往通用数据传输接口之前,所述解码模块还用于:
确定是否存在相容的音频硬件;
确定存在相容的音频硬件,将由音频文件解码而成的音频数据流直接发往所述相容的音频硬件所连接的通用数据传输接口。
9.根据权利要求8所述的装置,其特征在于,所述解码模块具体用于:
获取各个通用数据传输接口上连接的音频硬件的标识,根据所述标识确定各个通用数据传输接口上连接的音频硬件是否为相容的音频硬件;
或者,通过网络设备发现协议确定是否存在相容的音频硬件。
10.根据权利要求6所述的装置,其特征在于,所述解码模块还用于:
在首次发送音频数据流之前或者在音频数据流参数发生变化时,向所述通用数据传输接口发送音频数据流参数,所述音频数据流参数包括采样率、位深度、通道数和增益;
所述音频硬件,还用于根据所述音频数据流参数进行配置。
技术总结
本发明公开了一种音频播放方法和装置,属于计算机领域,以提高音频播放质量。所述方法包括:将由音频文件解码而成的音频数据流直接发往通用数据传输接口;连接到所述通用数据传输接口上的音频硬件在接收到所述音频数据流后,对所述音频数据流进行模拟输出。本发明用于音频播放。
技术研发人员:黄裕佳
受保护的技术使用者:广州酷狗计算机科技有限公司
技术研发日:.09.13
技术公布日:.01.24
如果觉得《一种音频播放方法和装置与流程》对你有帮助,请点赞、收藏,并留下你的观点哦!