CN108877845B - 歌曲播放方法及装置 - Google Patents

歌曲播放方法及装置 Download PDF

Info

Publication number
CN108877845B
CN108877845B CN201810697713.6A CN201810697713A CN108877845B CN 108877845 B CN108877845 B CN 108877845B CN 201810697713 A CN201810697713 A CN 201810697713A CN 108877845 B CN108877845 B CN 108877845B
Authority
CN
China
Prior art keywords
song
audio data
thread
playing
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201810697713.6A
Other languages
English (en)
Other versions
CN108877845A (zh
Inventor
刘东平
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Chengdu kugou business incubator management Co.,Ltd.
Original Assignee
Guangzhou Kugou Computer Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Guangzhou Kugou Computer Technology Co Ltd filed Critical Guangzhou Kugou Computer Technology Co Ltd
Priority to CN201810697713.6A priority Critical patent/CN108877845B/zh
Publication of CN108877845A publication Critical patent/CN108877845A/zh
Application granted granted Critical
Publication of CN108877845B publication Critical patent/CN108877845B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/10527Audio or video recording; Data buffering arrangements
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/10009Improvement or modification of read or write signals
    • G11B20/10018Improvement or modification of read or write signals analog processing for digital recording or reproduction
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/10527Audio or video recording; Data buffering arrangements
    • G11B2020/1062Data buffering arrangements, e.g. recording or playback buffers
    • G11B2020/10675Data buffering arrangements, e.g. recording or playback buffers aspects of buffer control

Abstract

本发明公开了一种歌曲播放方法及装置,属于计算机技术领域。所述方法包括:开启第一线程和第二线程;通过所述第一线程提供第一歌曲的音频数据进行播放,通过所述第二线程预先加载第二歌曲的音频数据;当播放完所述第一歌曲的音频数据时,开始播放已加载的所述第二歌曲的音频数据。本发明通过在当前歌曲的音频数据播放完之前,预先加载了下一个歌曲的音频数据,使得终端在播放完当前歌曲的音频数据后,可以及时播放另一个歌曲的音频数据,避免了歌曲的切换播放存在时间间隙的问题,可以实现不同歌曲的无缝播放。

Description

歌曲播放方法及装置
技术领域
本发明涉及计算机技术领域,尤其涉及一种歌曲播放方法及装置。
背景技术
随着计算机技术的发展,各种音乐应用层出不穷,用户可以在终端上安装这些音乐应用,进而利用安装有音乐应用的终端播放歌曲的音频数据。
目前,终端可以自动切换歌曲的播放,具体地,终端播放完当前歌曲后,先进行一些资源的清理工作,然后加载下一个歌曲的音频数据,待加载了一定量的音频数据后,再开始播放下一个歌曲的音频数据。
在实现本发明的过程中,发明人发现相关技术至少存在以下问题:
当前歌曲播放完后,才开始加载下一个歌曲的音频数据,导致不同歌曲的切换播放存在时间间隙,不能实现不同歌曲的无缝播放。
发明内容
本发明实施例提供了一种歌曲播放方法及装置,可以解决相关技术不能实现歌曲的无缝播放的问题。所述技术方案如下:
第一方面,提供一种歌曲播放方法,包括:
开启第一线程和第二线程;
通过所述第一线程提供第一歌曲的音频数据进行播放,通过所述第二线程预先加载第二歌曲的音频数据;
当播放完所述第一歌曲的音频数据时,开始播放已加载的所述第二歌曲的音频数据。
在一种可能实现方式中,所述通过所述第一线程提供第一歌曲的音频数据进行播放,包括:
通过所述第一线程,从所述第一歌曲的音频文件中读取音频数据并解码后,将解码后的音频数据存入到数据缓存中;
当所述数据缓存中存在预设量的音频数据时,开始从所述数据缓存中获取所述第一歌曲的音频数据进行播放。
在一种可能实现方式中,所述通过所述第二线程预先加载第二歌曲的音频数据,包括:
当开始播放所述第一歌曲的音频数据时,通过所述第二线程,从所述第二歌曲的音频文件中读取音频数据并解码;
当解码得到预设量的音频数据时,停止读取和解码音频数据;
当通过所述第一线程从所述第一歌曲的音频文件中读取最后一帧音频数据并解码后,通过所述第二线程将解码后的所述第二歌曲的音频数据存入到数据缓存中。
在一种可能实现方式中,所述当播放完所述第一歌曲的音频数据时,开始播放已加载的所述第二歌曲的音频数据,包括:
当播放完所述第一歌曲的最后一帧音频数据时,开始从所述数据缓存中获取所述第二歌曲的音频数据进行播放。
在一种可能实现方式中,所述方法还包括:
当开始播放所述第二歌曲的音频数据时,通过所述第一线程预先加载第三歌曲的音频数据。
第二方面,提供一种歌曲播放装置,包括:
开启模块,用于开启第一线程和第二线程;
播放模块,用于通过所述第一线程提供第一歌曲的音频数据进行播放;
加载模块,用于通过所述第二线程预先加载第二歌曲的音频数据;
所述播放模块还用于当播放完所述第一歌曲的音频数据时,开始播放已加载的所述第二歌曲的音频数据。
在一种可能实现方式中,所述播放模块用于:
通过所述第一线程,从所述第一歌曲的音频文件中读取音频数据并解码后,将解码后的音频数据存入到数据缓存中;
当所述数据缓存中存在预设量的音频数据时,开始从所述数据缓存中获取所述第一歌曲的音频数据进行播放。
在一种可能实现方式中,所述加载模块用于:
当开始播放所述第一歌曲的音频数据时,通过所述第二线程,从所述第二歌曲的音频文件中读取音频数据并解码;
当解码得到预设量的音频数据时,停止读取和解码音频数据;
当通过所述第一线程从所述第一歌曲的音频文件中读取最后一帧音频数据并解码后,通过所述第二线程将解码后的所述第二歌曲的音频数据存入到数据缓存中。
在一种可能实现方式中,所述播放模块用于当播放完所述第一歌曲的最后一帧音频数据时,开始从所述数据缓存中获取所述第二歌曲的音频数据进行播放。
在一种可能实现方式中,所述加载模块还用于当开始播放所述第二歌曲的音频数据时,通过所述第一线程预先加载第三歌曲的音频数据。
第三方面,提供了一种终端,包括处理器和存储器;所述存储器,用于存放计算机程序;所述处理器,用于执行所述存储器上所存放的计算机程序,实现第一方面任一种实现方式所述的方法步骤。
第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现第一方面任一种实现方式所述的方法步骤。
本发明实施例提供的技术方案带来的有益效果至少包括:
通过开启两个工作线程,一个线程负责提供一个歌曲的音频数据进行播放,另一个线程负责预先加载另一个歌曲的音频数据。由于在当前歌曲的音频数据播放完之前,已经预先加载了下一个歌曲的音频数据,使得终端在播放完当前歌曲的音频数据后,可以及时播放另一个歌曲的音频数据,避免了歌曲的切换播放存在时间间隙的问题,可以实现不同歌曲的无缝播放。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种歌曲播放方法的流程图;
图2是本发明实施例提供的一种歌曲播放方法的流程图;
图3是本发明实施例提供的一种第一线程和第二线程的工作示意图;
图4是本发明实施例提供的一种第一线程和第二线程的工作示意图;
图5是本发明实施例提供的一种歌曲播放装置的结构示意图;
图6是本发明实施例提供的一种终端600的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
图1是本发明实施例提供的一种歌曲播放方法的流程图。参见图1,
该方法包括:
101、开启第一线程和第二线程。
102、通过该第一线程提供第一歌曲的音频数据进行播放,通过该第二线程预先加载第二歌曲的音频数据。
103、当播放完该第一歌曲的音频数据时,开始播放已加载的该第二歌曲的音频数据。
本发明实施例提供的方法,通过开启两个工作线程,一个线程负责提供一个歌曲的音频数据进行播放,另一个线程负责预先加载另一个歌曲的音频数据。由于在当前歌曲的音频数据播放完之前,已经预先加载了下一个歌曲的音频数据,使得终端在播放完当前歌曲的音频数据后,可以及时播放另一个歌曲的音频数据,避免了歌曲的切换播放存在时间间隙的问题,可以实现不同歌曲的无缝播放。
在一种可能实现方式中,该通过该第一线程提供第一歌曲的音频数据进行播放,包括:
通过该第一线程,从该第一歌曲的音频文件中读取音频数据并解码后,将解码后的音频数据存入到数据缓存中;
当该数据缓存中存在预设量的音频数据时,开始从该数据缓存中获取该第一歌曲的音频数据进行播放。
在一种可能实现方式中,该通过该第二线程预先加载第二歌曲的音频数据,包括:
当开始播放该第一歌曲的音频数据时,通过该第二线程,从该第二歌曲的音频文件中读取音频数据并解码;
当解码得到预设量的音频数据时,停止读取和解码音频数据;
当通过该第一线程从该第一歌曲的音频文件中读取最后一帧音频数据并解码后,通过该第二线程将解码后的该第二歌曲的音频数据存入到数据缓存中。
在一种可能实现方式中,该当播放完该第一歌曲的音频数据时,开始播放已加载的该第二歌曲的音频数据,包括:
当播放完该第一歌曲的最后一帧音频数据时,开始从该数据缓存中获取该第二歌曲的音频数据进行播放。
在一种可能实现方式中,该方法还包括:
当开始播放该第二歌曲的音频数据时,通过该第一线程预先加载第三歌曲的音频数据。
上述所有可选技术方案,可以采用任意结合形成本发明的可选实施例,在此不再一一赘述。
图2是本发明实施例提供的一种歌曲播放方法的流程图。该方法由终端执行,参见图2,该方法包括:
201、开启第一线程和第二线程。
本发明实施例中,终端可以开启第一线程和第二线程这两个工作线程,该工作线程可以从文件中读取数据,并解码数据,终端内存中有一个小的数据缓存可以用来缓存一定量的解码出来的数据。其中,文件可以是音频文件,如音频文件,数据可以是音频数据。
其中,数据缓存是一个先进先出的数据队列,终端的播放器可以从该数据缓存中获取数据进行播放,播放器可以是终端的芯片(如音频芯片)。播放器的播放过程可以如下:一个工作线程从文件中读取并解码数据,并将解码后的数据写入到数据缓存里面,当播放器开始工作时,会以一个恒定的速度,从数据缓存里面取出数据并进行播放。工作线程会不断的从文件中读取并解码数据,然后将数据写入到数据缓存,保证播放器可以一直有数据可播。
需要说明的是,本发明实施例仅以开启第一线程和第二线程为步骤201为例进行说明,终端可以同时开启该第一线程和第二线程,如在终端启动多媒体应用时,即开启第一线程和第二线程,或,终端在接收到播放指令时,开启第一线程和第二线程。当然,终端也可以在不同时机,开启第一线程和第二线程,终端可以先开启第一线程,再开启第二线程。例如,终端可以在开始播放第一歌曲的音频数据时,开启第一线程,在播放第一歌曲的过程中,再开启第二线程。本发明实施例对第一线程和第二线程的开启时机不做具体限定。
202、通过该第一线程提供第一歌曲的音频数据进行播放,通过该第二线程预先加载第二歌曲的音频数据。
其中,第二歌曲可以是第一歌曲的下一个歌曲。
本发明实施例中,第一线程和第二线程可以分工协作,执行不同的工作任务,一个线程负责提供一个歌曲的音频数据进行播放,另一个线程负责预先加载另一个歌曲的音频数据,这两个工作线程的工作任务可以进行切换。
在一种可能实现方式中,该通过该第一线程提供第一歌曲的音频数据进行播放,包括:通过该第一线程,从该第一歌曲的音频文件中读取音频数据并解码后,将解码后的音频数据存入到数据缓存中;当该数据缓存中存在预设量的音频数据时,开始从该数据缓存中获取该第一歌曲的音频数据进行播放。
终端在开始播放第一歌曲时,可以开启第一线程,在真正播放第一歌曲的音频数据之前,通过第一线程,先解码出预设量的音频数据,然后终端的播放器开始工作,从数据缓存中取出音频数据进行播放。通过从音频文件中读取数据进行解码后,放入数据缓存中,提供了一种为播放器提供数据进行播放的方式。
在一种可能实现方式中,该通过该第二线程预先加载第二歌曲的音频数据,包括:当开始播放该第一歌曲的音频数据时,通过该第二线程,从该第二歌曲的音频文件中读取音频数据并解码;当解码得到预设量的音频数据时,停止读取和解码音频数据;当终端通过该第一线程从该第一歌曲的音频文件中读取最后一帧音频数据并解码后,通过该第二线程将解码后的该第二歌曲的音频数据存入到数据缓存中。
当终端的播放器开始工作,从数据缓存中取出第一歌曲的音频数据进行播放时,此时,终端可以开启第二线程,通过这个第二线程,从第二歌曲的音频文件中读取出预设量的音频数据并解码,之后等待。参见图3,提供了一种第一线程和第二线程的工作示意图,如图3所示,第一歌曲的音频文件为文件A,第二歌曲的音频文件为文件B,在第一线程为播放器提供文件A中的数据进行播放时,第二线程预先加载文件B中的数据。当终端通过第一线程取出第一歌曲的音频文件中的最后一帧数据时,第二线程重新工作,代替第一线程,为播放器提供音频数据。这个切换过程中,播放器不会停顿,依然在播放音频数据。
通过在播放当前歌曲的过程中,预先从音频文件中读取数据并解码后,存入数据缓存中,使得终端在播放完当前歌曲后,可以直接从数据缓存中获取下一个歌曲的音频数据进行播放,避免了歌曲的切换播放存在时间间隙的问题。
203、当播放完该第一歌曲的音频数据时,开始播放已加载的该第二歌曲的音频数据。
在一种可能实现方式中,该步骤203包括:当播放完该第一歌曲的最后一帧音频数据时,开始从该数据缓存中获取该第二歌曲的音频数据进行播放。
终端在播放第一歌曲的音频数据的过程中,第二歌曲的音频数据已预先加载到了数据缓存中,因此,当终端播放完第一歌曲的音频数据时,终端的播放器可以接着从数据缓存中第二歌曲的音频数据开始播放。通过预先加载下一个歌曲的音频数据,保证了播放器始终可以从数据缓存中获取到音频数据进行播放,将切换歌曲的时间间隙减小到0,实现了歌曲的无缝播放。
204、当开始播放该第二歌曲的音频数据时,通过该第一线程预先加载第三歌曲的音频数据。
其中,第三歌曲可以是第二歌曲的下一个歌曲。
该步骤204与步骤202同理,相应地,在一种可能实现方式中,该通过该第一线程预先加载第三歌曲的音频数据,包括:当开始从该数据缓存中获取该第二歌曲的音频数据进行播放时,通过该第一线程,从第三歌曲的音频文件中读取音频数据并解码;当解码得到该预设量的音频数据时,停止读取和解码音频数据;当通过该第二线程从该第二歌曲的音频文件中读取最后一帧音频数据时,通过该第一线程将解码得到的该第三歌曲的音频数据存入到该数据缓存中。
参见图4,提供了一种第一线程和第二线程的工作示意图,如图4所示,第二歌曲的音频文件为文件B,第三歌曲的音频文件为文件C,终端从播放第一歌曲切换到播放第二歌曲之后,在第二线程为播放器提供文件B中的数据进行播放时,第一线程可以预先加载文件C中的数据,也即是,第一线程从文件C中读取并解码出一定量的数据,之后等待。直至第二线程取出文件B中的最后一帧数据时,第一线程重新工作,代替第二线程,为播放器提供音频数据。
需要说明的是,该步骤204为可选步骤,终端通过执行步骤201至步骤203即可实现歌曲的无缝播放,例如,终端在执行完步骤203后,如果接收到停止播放指令,则可以不再继续播放第三歌曲。当然,终端也可以在执行完步骤203后,继续执行步骤204,进一步地,当播放完该第二歌曲的音频数据时,终端可以开始播放该第三歌曲的音频数据。更进一步地,当开始播放该第三歌曲的音频数据时,终端可以通过该第二线程预先加载下一个歌曲的音频数据,如此不断实现下一个歌曲的无缝播放。
本发明实施例提供的技术方案,利用双缓冲机制,开启两个工作线程,一个线程预先加载下一个歌曲的数据,在上一个歌曲的最后一帧数据被解码出来之后,切换工作线程。终端通过这两个工作线程,以交替的方式为播放器提供不同歌曲的音频数据进行播放,如此反复,数据缓存中源源不断的有数据进来,播放器源源不断的可以获取到数据进行播放,因此,在切换歌曲进行播放的过程中不会有停顿,从而实现了不同歌曲的无缝切换播放。
本发明实施例提供的方法,通过开启两个工作线程,一个线程负责提供一个歌曲的音频数据进行播放,另一个线程负责预先加载另一个歌曲的音频数据。由于在当前歌曲的音频数据播放完之前,已经预先加载了下一个歌曲的音频数据,使得终端在播放完当前歌曲的音频数据后,可以及时播放另一个歌曲的音频数据,避免了歌曲的切换播放存在时间间隙的问题,可以实现不同歌曲的无缝播放。
图5是本发明实施例提供的一种歌曲播放装置的结构示意图。参照图5,该装置包括:
开启模块501,用于开启第一线程和第二线程;
播放模块502,用于通过该第一线程提供第一歌曲的音频数据进行播放;
加载模块503,用于通过该第二线程预先加载第二歌曲的音频数据;
该播放模块502还用于当播放完该第一歌曲的音频数据时,开始播放已加载的该第二歌曲的音频数据。
在一种可能实现方式中,该播放模块502用于:
通过该第一线程,从该第一歌曲的音频文件中读取音频数据并解码后,将解码后的音频数据存入到数据缓存中;
当该数据缓存中存在预设量的音频数据时,开始从该数据缓存中获取该第一歌曲的音频数据进行播放。
在一种可能实现方式中,该加载模块503用于:
当开始播放该第一歌曲的音频数据时,通过该第二线程,从该第二歌曲的音频文件中读取音频数据并解码;
当解码得到预设量的音频数据时,停止读取和解码音频数据;
当通过该第一线程从该第一歌曲的音频文件中读取最后一帧音频数据并解码后,通过该第二线程将解码后的该第二歌曲的音频数据存入到数据缓存中。
在一种可能实现方式中,该播放模块502用于当播放完该第一歌曲的最后一帧音频数据时,开始从该数据缓存中获取该第二歌曲的音频数据进行播放。
在一种可能实现方式中,该加载模块503还用于当开始播放该第二歌曲的音频数据时,通过该第一线程预先加载第三歌曲的音频数据。
本发明实施例中,通过开启两个工作线程,一个线程负责提供一个歌曲的音频数据进行播放,另一个线程负责预先加载另一个歌曲的音频数据。由于在当前歌曲的音频数据播放完之前,已经预先加载了下一个歌曲的音频数据,使得终端在播放完当前歌曲的音频数据后,可以及时播放另一个歌曲的音频数据,避免了歌曲的切换播放存在时间间隙的问题,可以实现不同歌曲的无缝播放。
需要说明的是:上述实施例提供的歌曲播放装置在音频数据播放时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的歌曲播放装置与歌曲播放方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图6是本发明实施例提供的一种终端600的结构示意图。该终端600可以是:智能手机、平板电脑、MP3播放器(Moving Picture Experts Group Audio Layer III,动态影像专家压缩标准音频层面3)、MP4(Moving Picture Experts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、笔记本电脑或台式电脑。终端600还可能被称为用户设备、便携式终端、膝上型终端、台式终端等其他名称。
通常,终端600包括有:处理器601和存储器602。
处理器601可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器601可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器601也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器601可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器601还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器602可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器602还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器602中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器601所执行以实现本申请中方法实施例提供的歌曲播放方法。
在一些实施例中,终端600还可选包括有:外围设备接口603和至少一个外围设备。处理器601、存储器602和外围设备接口603之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口603相连。具体地,外围设备包括:射频电路604、显示屏605、摄像头606、音频电路607、定位组件608和电源609中的至少一种。
外围设备接口603可被用于将I/O(Input/Output,输入/输出)相关的至少一个外围设备连接到处理器601和存储器602。在一些实施例中,处理器601、存储器602和外围设备接口603被集成在同一芯片或电路板上;在一些其他实施例中,处理器601、存储器602和外围设备接口603中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
射频电路604用于接收和发射RF(Radio Frequency,射频)信号,也称电磁信号。射频电路604通过电磁信号与通信网络以及其他通信设备进行通信。射频电路604将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路604包括:天线系统、RF收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路604可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:城域网、各代移动通信网络(2G、3G、4G及5G)、无线局域网和/或WiFi(Wireless Fidelity,无线保真)网络。在一些实施例中,射频电路604还可以包括NFC(Near Field Communication,近距离无线通信)有关的电路,本申请对此不加以限定。
显示屏605用于显示UI(UserInterface,用户界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏605是触摸显示屏时,显示屏605还具有采集在显示屏605的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器601进行处理。此时,显示屏605还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏605可以为一个,设置终端600的前面板;在另一些实施例中,显示屏605可以为至少两个,分别设置在终端600的不同表面或呈折叠设计;在再一些实施例中,显示屏605可以是柔性显示屏,设置在终端600的弯曲表面上或折叠面上。甚至,显示屏605还可以设置成非矩形的不规则图形,也即异形屏。显示屏605可以采用LCD(LiquidCrystal Display,液晶显示屏)、OLED(Organic Light-Emitting Diode,有机发光二极管)等材质制备。
摄像头组件606用于采集图像或视频。可选地,摄像头组件606包括前置摄像头和后置摄像头。通常,前置摄像头设置在终端的前面板,后置摄像头设置在终端的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及VR(Virtual Reality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件606还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。
音频电路607可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器601进行处理,或者输入至射频电路604以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在终端600的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器601或射频电路604的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路607还可以包括耳机插孔。
定位组件608用于定位终端600的当前地理位置,以实现导航或LBS(LocationBased Service,基于位置的服务)。定位组件608可以是基于美国的GPS(GlobalPositioning System,全球定位系统)、中国的北斗系统、俄罗斯的格雷纳斯系统或欧盟的伽利略系统的定位组件。
电源609用于为终端600中的各个组件进行供电。电源609可以是交流电、直流电、一次性电池或可充电电池。当电源609包括可充电电池时,该可充电电池可以支持有线充电或无线充电。该可充电电池还可以用于支持快充技术。
在一些实施例中,终端600还包括有一个或多个传感器610。该一个或多个传感器610包括但不限于:加速度传感器611、陀螺仪传感器612、压力传感器613、指纹传感器614、光学传感器615以及接近传感器616。
加速度传感器611可以检测以终端600建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器611可以用于检测重力加速度在三个坐标轴上的分量。处理器601可以根据加速度传感器611采集的重力加速度信号,控制触摸显示屏605以横向视图或纵向视图进行用户界面的显示。加速度传感器611还可以用于游戏或者用户的运动数据的采集。
陀螺仪传感器612可以检测终端600的机体方向及转动角度,陀螺仪传感器612可以与加速度传感器611协同采集用户对终端600的3D动作。处理器601根据陀螺仪传感器612采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变UI)、拍摄时的图像稳定、游戏控制以及惯性导航。
压力传感器613可以设置在终端600的侧边框和/或触摸显示屏605的下层。当压力传感器613设置在终端600的侧边框时,可以检测用户对终端600的握持信号,由处理器601根据压力传感器613采集的握持信号进行左右手识别或快捷操作。当压力传感器613设置在触摸显示屏605的下层时,由处理器601根据用户对触摸显示屏605的压力操作,实现对UI界面上的可操作性控件进行控制。可操作性控件包括按钮控件、滚动条控件、图标控件、菜单控件中的至少一种。
指纹传感器614用于采集用户的指纹,由处理器601根据指纹传感器614采集到的指纹识别用户的身份,或者,由指纹传感器614根据采集到的指纹识别用户的身份。在识别出用户的身份为可信身份时,由处理器601授权该用户执行相关的敏感操作,该敏感操作包括解锁屏幕、查看加密信息、下载软件、支付及更改设置等。指纹传感器614可以被设置终端600的正面、背面或侧面。当终端600上设置有物理按键或厂商Logo时,指纹传感器614可以与物理按键或厂商Logo集成在一起。
光学传感器615用于采集环境光强度。在一个实施例中,处理器601可以根据光学传感器615采集的环境光强度,控制触摸显示屏605的显示亮度。具体地,当环境光强度较高时,调高触摸显示屏605的显示亮度;当环境光强度较低时,调低触摸显示屏605的显示亮度。在另一个实施例中,处理器601还可以根据光学传感器615采集的环境光强度,动态调整摄像头组件606的拍摄参数。
接近传感器616,也称距离传感器,通常设置在终端600的前面板。接近传感器616用于采集用户与终端600的正面之间的距离。在一个实施例中,当接近传感器616检测到用户与终端600的正面之间的距离逐渐变小时,由处理器601控制触摸显示屏605从亮屏状态切换为息屏状态;当接近传感器616检测到用户与终端600的正面之间的距离逐渐变大时,由处理器601控制触摸显示屏605从息屏状态切换为亮屏状态。
本领域技术人员可以理解,图6中示出的结构并不构成对终端600的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
在示例性实施例中,还提供了一种存储有计算机程序的计算机可读存储介质,例如存储有计算机程序的存储器,上述计算机程序被处理器执行时实现上述实施例中的歌曲播放方法。例如,计算机可读存储介质可以是只读内存(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、只读光盘(Compact Disc Read-Only Memory,CD-ROM)、磁带、软盘和光数据存储设备等。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,该程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (8)

1.一种歌曲播放方法,其特征在于,所述方法包括:
开启第一线程和第二线程;
通过所述第一线程提供第一歌曲的音频数据进行播放,通过所述第二线程预先加载第二歌曲的音频数据;
当播放完所述第一歌曲的音频数据时,开始播放已加载的所述第二歌曲的音频数据;
所述通过所述第二线程预先加载第二歌曲的音频数据,包括:
当开始播放所述第一歌曲的音频数据时,通过所述第二线程,从所述第二歌曲的音频文件中读取音频数据并解码;
当解码得到预设量的音频数据时,停止读取和解码音频数据;
当通过所述第一线程从所述第一歌曲的音频文件中读取最后一帧音频数据并解码后,通过所述第二线程将解码后的所述第二歌曲的音频数据存入到数据缓存中;
所述通过所述第一线程提供第一歌曲的音频数据进行播放,包括:
通过所述第一线程,从所述第一歌曲的音频文件中读取音频数据并解码后,将解码后的音频数据存入到所述数据缓存中;
当所述数据缓存中存在预设量的音频数据时,开始从所述数据缓存中获取所述第一歌曲的音频数据进行播放。
2.根据权利要求1所述的方法,其特征在于,所述当播放完所述第一歌曲的音频数据时,开始播放已加载的所述第二歌曲的音频数据,包括:
当播放完所述第一歌曲的最后一帧音频数据时,开始从所述数据缓存中获取所述第二歌曲的音频数据进行播放。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当开始播放所述第二歌曲的音频数据时,通过所述第一线程预先加载第三歌曲的音频数据。
4.一种歌曲播放装置,其特征在于,所述装置包括:
开启模块,用于开启第一线程和第二线程;
播放模块,用于通过所述第一线程提供第一歌曲的音频数据进行播放;
加载模块,用于通过所述第二线程预先加载第二歌曲的音频数据;
所述播放模块还用于当播放完所述第一歌曲的音频数据时,开始播放已加载的所述第二歌曲的音频数据;
所述加载模块用于:
当开始播放所述第一歌曲的音频数据时,通过所述第二线程,从所述第二歌曲的音频文件中读取音频数据并解码;
当解码得到预设量的音频数据时,停止读取和解码音频数据;
当通过所述第一线程从所述第一歌曲的音频文件中读取最后一帧音频数据并解码后,通过所述第二线程将解码后的所述第二歌曲的音频数据存入到数据缓存中;
所述播放模块用于:
通过所述第一线程,从所述第一歌曲的音频文件中读取音频数据并解码后,将解码后的音频数据存入到所述数据缓存中;
当所述数据缓存中存在预设量的音频数据时,开始从所述数据缓存中获取所述第一歌曲的音频数据进行播放。
5.根据权利要求4所述的装置,其特征在于,所述播放模块用于当播放完所述第一歌曲的最后一帧音频数据时,开始从所述数据缓存中获取所述第二歌曲的音频数据进行播放。
6.根据权利要求4所述的装置,其特征在于,所述加载模块还用于当开始播放所述第二歌曲的音频数据时,通过所述第一线程预先加载第三歌曲的音频数据。
7.一种终端,其特征在于,包括处理器和存储器;所述存储器,用于存放计算机程序;所述处理器,用于执行所述存储器上所存放的计算机程序,实现权利要求1-3任一项所述的方法步骤。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-3任一项所述的方法步骤。
CN201810697713.6A 2018-06-29 2018-06-29 歌曲播放方法及装置 Active CN108877845B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810697713.6A CN108877845B (zh) 2018-06-29 2018-06-29 歌曲播放方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810697713.6A CN108877845B (zh) 2018-06-29 2018-06-29 歌曲播放方法及装置

Publications (2)

Publication Number Publication Date
CN108877845A CN108877845A (zh) 2018-11-23
CN108877845B true CN108877845B (zh) 2020-11-03

Family

ID=64297228

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810697713.6A Active CN108877845B (zh) 2018-06-29 2018-06-29 歌曲播放方法及装置

Country Status (1)

Country Link
CN (1) CN108877845B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111224693B (zh) * 2019-11-27 2021-08-06 展讯通信(上海)有限公司 用于无线耳机的音频数据传输方法及装置、存储介质、终端

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102280132A (zh) * 2010-06-11 2011-12-14 希姆通信息技术(上海)有限公司 基于http协议的在线流式音频播放方法
CN102638402A (zh) * 2012-03-28 2012-08-15 中兴通讯股份有限公司 流媒体双缓存技术中填充数据的方法及装置
CN103596036A (zh) * 2013-11-12 2014-02-19 浪潮齐鲁软件产业有限公司 一种流媒体播放器智能缓冲方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6260143B1 (en) * 1998-07-27 2001-07-10 Oak Technology, Inc. Host-based caching method and system for copy protected content
DE60033011T2 (de) * 1999-09-27 2007-08-09 Koninklijke Philips Electronics N.V. Aufteilung einer datei zur emulation eines datenstroms
US7797064B2 (en) * 2002-12-13 2010-09-14 Stephen Loomis Apparatus and method for skipping songs without delay
US20050097558A1 (en) * 2003-10-31 2005-05-05 De Bonet Jeremy S. System and method for a symmetric architecture for multimedia players
CN101483054B (zh) * 2008-12-25 2013-04-03 深圳市迅雷网络技术有限公司 一种播放多媒体文件的方法及装置
CN103391454B (zh) * 2013-07-12 2016-12-28 三星电子(中国)研发中心 一种多线程下载方法和装置
CN104240739B (zh) * 2014-09-04 2017-05-24 广东欧珀移动通信有限公司 一种移动终端的音乐播放方法及装置
CN106658117A (zh) * 2016-12-30 2017-05-10 百度在线网络技术(北京)有限公司 音/视频数据的处理方法及装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102280132A (zh) * 2010-06-11 2011-12-14 希姆通信息技术(上海)有限公司 基于http协议的在线流式音频播放方法
CN102638402A (zh) * 2012-03-28 2012-08-15 中兴通讯股份有限公司 流媒体双缓存技术中填充数据的方法及装置
CN103596036A (zh) * 2013-11-12 2014-02-19 浪潮齐鲁软件产业有限公司 一种流媒体播放器智能缓冲方法

Also Published As

Publication number Publication date
CN108877845A (zh) 2018-11-23

Similar Documents

Publication Publication Date Title
CN108401124B (zh) 视频录制的方法和装置
CN107908929B (zh) 播放音频数据的方法和装置
CN108391171B (zh) 视频播放的控制方法及装置、终端
CN110022489B (zh) 视频播放方法、装置及存储介质
CN110602321B (zh) 应用程序切换方法、装置、电子装置及存储介质
CN108965922B (zh) 视频封面生成方法、装置和存储介质
CN109144346B (zh) 歌曲分享方法、装置及存储介质
CN109922356B (zh) 视频推荐方法、装置和计算机可读存储介质
CN109348247B (zh) 确定音视频播放时间戳的方法、装置及存储介质
CN109068008B (zh) 铃声设置方法、装置、终端及存储介质
CN109005359B (zh) 视频录制方法、装置存储介质
CN109102811B (zh) 音频指纹的生成方法、装置及存储介质
CN107888975B (zh) 视频播放方法、装置及存储介质
CN108877845B (zh) 歌曲播放方法及装置
CN111711841A (zh) 图像帧播放方法、装置、终端及存储介质
CN112616082A (zh) 视频预览方法、装置、终端及存储介质
CN109982129B (zh) 短视频的播放控制方法、装置及存储介质
CN108845777B (zh) 播放帧动画的方法和装置
CN109101166B (zh) 音频控制方法、装置及存储介质
CN109783176B (zh) 切换页面的方法和装置
CN109189525B (zh) 加载子页面的方法、装置、设备及计算机可读存储介质
CN109275015B (zh) 显示虚拟物品的方法、装置及存储介质
CN110941458A (zh) 启动应用程序的方法、装置、设备及存储介质
CN110769120A (zh) 进行消息提醒的方法、装置、设备及存储介质
CN110868642B (zh) 视频播放方法、装置及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20220406

Address after: 4119, 41st floor, building 1, No.500, middle section of Tianfu Avenue, Chengdu hi tech Zone, China (Sichuan) pilot Free Trade Zone, Chengdu, Sichuan 610000

Patentee after: Chengdu kugou business incubator management Co.,Ltd.

Address before: No. 315, Huangpu Avenue middle, Tianhe District, Guangzhou City, Guangdong Province

Patentee before: GUANGZHOU KUGOU COMPUTER TECHNOLOGY Co.,Ltd.