音效播放方法及装置 【技术领域】
本发明是关于一种音效播放处理技术,特别是关于一种可确实判别音效播放的结束时间,以维持音效正常输出播放的方法及装置。
背景技术
在使用Linux为内部操作系统的信息设备进行音效播放作业时,需通过SDL_mixer函数库进行,SDL_mixer函数库虽可允许8种音效同时播放,然而在Linux操作系统环境下停止播放其中一种音效(假设为音效A))时,虽然音效A已停止播放,但通过SDL_mixer函数库内部函数进行判断时,却无法判别出音效A已经停止播放的信息,故而会误判断音效A仍持续输出播放,会令信息设备依然继续执行相同的播放程序,不会因音效A停止播放而做任何的修改或执行程序上的变更,这样会在播放程序要执行音效A的播放时,因播放程序无法取得音效A的播放资料,导致程序无法执行,因而导致音效无法正常播放,致使音效播放过程中产生失真。
【发明内容】
为克服上述现有技术的缺点,本发明的主要目的便是在于提供一种音效播放方法及装置,其是适用于一装载操作系统的信息设备上,用以监控信息设备的音效播放时间。
本发明的另一目的在于提供一种适用于信息设备的音效播放方法及装置,其主要特点是无需通过SDL_mixer函数库执行判断机制,即可判别音效播放的时间状态,使音效得以正常输出并完整播放。
为完成上述目的,本发明的音效播放方法包括以下步骤:(1)令使用者借由信息设备所含的操作接口,输入令信息设备播放的声音文件;(2)令该音效播放装置自信息设备所含的储存数据库中加载声音文件,并取得该声音文件的音效播放时间;(3)令音效播放装置提供至少一闲置声道,供该声音文件进行音效输出时使用;(4)令该音效播放装置检查(已播放时间)≥(音效播放时间)的关系是否成立,如该关系成立,即代表音效播放时间已经结束,直接进至步骤(5),若该关系不成立,也就是表示音效播放时间尚未结束,音效播放装置仍需反得检查音效播放时间是否已结束;以及(5)令该音效播放装置发送音效播放时间已结束地信息告知信息设备,并同时将原先使用的声道重新还原为闲置模式。
本发明的音效播放装置是与含有操作接口、中央处理单元、储存数据库及音效输出模块的信息设备配合运作,以监控音效的播放时间,该音效播放装置包括:(a)处理模块,用以根据信息设备传送的音效播放指令,驱动装置内部各功能组件依该指令执行相对应的运作;(b)文件加载模块,自信息设备内部所含的储存数据库中,加载使用者欲令信息设备播放的声音文件并存放于其内,借以供处理单元得以取读该声音文件的音效播放时间;以及(c)声道选择模块,其是提供处理单元所传送的声音文件至少一可供其音效输出时使用的闲置声道。
上述的音效播放方法及装置,可在信息设备进行音效播放作业时提供一针对音效播放时间进行监控的机制,本发明提供的音效播放方法是借由音效播放装置与信息设备配合以对音效播放时间进行监控;其是在使用者要求信息设备播放音效时,由音效播放装置自信息设备所含的储存数据库中加载相对应的声音文件,并取得该声音文件的音效播放时间,再由声道选择模块提供可令音效输出使用的闲置声道,该音效播放装置在音效输出时,同时检查音效播放时间,借以判别音效是否已播放完毕,当(已播放时间)≥(音效播放时间)时,此即表示音效已结束播放,处理模块随即传送已结束播放的信息告知信息设备,并将使用的声道还原回闲置模式;由上述可知,本发明的音效播放方法及装置在进行音效播放时间判别时,无须通过SDL_mixer函数库进行判别,因此可避免因SDL_mixer函数库误判音效播放的状态,导致音效无法正常播放的事情发生。
【附图说明】
图1是一方块图,显示本发明的音效拨放装置的架构示意图;
图2是一流程图,显示本发明的音效播放方法于进行音效输出作业时的各项程序。
【具体实施方式】
实施例
在以下实施方式中,本发明的音效播放方法及装置是应用在装载Linux操作系统的个人计算机上,用以对个人计算机提供一音效播放的时间控管功能,使个人计算机产生的音效得以正常播放,并可产生完整的音效输出,然而在此首先需注意的是,本发明并不限定仅可用于个人计算机上,广义而言,本发明是可应用在任何使用Linux为操作系统并具有音效输出模块的信息设备上,用以对信息设备提供一音效播放时间的监控功能。
图1为一方块图,显示本发明的音效播放装置40应用在个人计算机10(以下略称为计算机10)内部的架构示意图。如图所示,计算机10包括操作接口20、中央处理单元30、音效播放装置40、储存数据库50及音效输出模块60(计算机10实际上另包括许多功能组件,在此仅列出并详细说明本发明相关的功能组件),其中,本发明的音效播放装置40另包括处理模块41、文件加载模块42以及声道选择模块43;使用者首先是通过操作接口20,输入要求计算机10进行音效播放的指令(计算机10本身也可根据各类型与其操作系统环境兼容的多媒体软件传达的音效播放指令进行音效播放的动作),使计算机10可输出使用者所要接收的音效,音效播放指令随即以数字信号方式传送至计算机10的中央处理单元30,借以令该中央处理单元30可根据此音效播放指令的资料内容,驱动并命令设置在计算机10内部的音效播放装置40,进行音效播放处理作业,并借由该音效播放装置40间接驱动其它与音效播放作业相关的功能组件执行相对应的运作程序。
音效播放装置40在接获中央处理单元30下达的音效播放指令后,随即要求其内部所设的文件加载模块42,联机至与其连接的储存数据库50,该储存数据库50是存放有计算机10用以供外界接收的各类型声音文件,文件加载模块42可自储存数据库50加载使用者所要播放的声音文件,并暂存在文件加载模块42,以供处理模块41能够从所加载的声音文件中,获取该声音文件提供的音效播放时间并予以记录保存,借以令处理模块41可对音效播放时间的结束与否进行监控,接着,处理模块41随即驱动声道选择模块43,提供一目前处于闲置模式的输出声道,供该声音文件提供的以数字信号方式传递的音效信号,能够经由声道选择模块43提供的闲置声道、并通过音效输出模块60,将音效信号转换成模拟信号输出至计算机10外部供使用者接收,若声道选择模块43无法提供至少一闲置声道供音效信号输出,则处理模块41会要求声道选择模块43自行增加闲置声道的数量,令所要输出的音效信号均能够有足够数量的闲置声道可供其使用;在处理模块41进行监控音效播放时间结束与否的过程中,处理模块41也不断查询音效播放时间,借以判别音效是否已播放完毕,即若(已播放的时间)≥(音效播放时间)时,处理模块41就认为音效已播放完毕,随即传送一提示信息告知计算机10所设的中央处理单元30音效播放时间已结束,同时将使用的输出声道状态还原为闲置模式,以在其它音效播放作业时,可提供足够的闲置声道供音效信号使用;如在监控过程中,音效播放装置40尚未完成音效播放作业,则处理模块41仍将不断对音效播放时间完成与否进行监控,直至音效播放时间终止才停止监控。
图2是一流程图,显示应用本发明的计算机10在进行音效播放时间处理作业时的各项程序流程。如图所示,计算机10的使用者首先通过计算机10所设的操作接口20输入音效播放指令,令计算机10输出使用者所要接收的音效信号,接着进至步骤S2。
在步骤S2中,音效播放指令通过操作接口20输入计算机10后,随即以数字信号方式传送至中央处理单元30,令中央处理单元30驱动音效播放装置40进行音效播放作业流程,音效播放装置40在接收音效播放指令后,令文件加载模块42自储存数据库50中,加载使用者所要播放的声音文件并暂时储存在文件加载模块42中,以在随后的程序中供处理模块41自该声音文件中获取该声音文件的音效播放时间,做为后续音效播放时间结束与否的参考对比资料,接着进至步骤S3。
在步骤S3中,处理模块41令声道选择模块43判别并选取有无一可供加载的声音文件所含音效信号输出至外界所需的闲置声道,若声道选择模块43可选取出闲置声道供音效信号输出,直接进置步骤S4,如声道选择模块43无法提供任何闲置声道可供音效信号使用,则进置步骤S5。
在步骤S4中,处理模块41随即驱使音效信号,使用声道选择模块43提供的闲置声道输入至音效输出模块60,以通过音效输出模块60将音效信号转为一模拟信号输出至外界供使用者接收,接着进至步骤S6。
在步骤S5中,处理模块41令声道选择模块43增加可供音效信号通过的闲置声道数量后,重新执行步骤S4,令音效信号可通过声道选择模块43新增的闲置声道输入至音效输出模块60,通过音效输出模块60将音效信号转为一模拟信号。
在步骤S6中,令该处理模块41判别已播放时间是否大于或等于音效播放时间,若已播放时间大于或等于音效播放时间,则处理模块41将认定音效播放时间已终止,接着进至步骤S7,如已播放时间并未大于或等于音效播放时间,处理模块41将重复执行步骤S6,不断查询已播放时间借以确认音效播放时间是否已终止。
在步骤S7中,令该处理模块41通过音效输出模块60,给中央处理单元30发送一已播放完毕的提示信号,告知中央处理单元30音效播放时间已终止的信息,接着进至步骤S8。
在步骤S8中,令该处理模块41控制声道选择模块43将先前所用的声道状态重新复原为闲置模式,以供其余音效播放作业产生的音效信号得以通过该闲置声道并输出至外界。
综合上述,本发明的音效播放方法及装置是可令使用Linux操作系统的计算机,无须通过Linux内所含的SDL_mixer库以判断函数的方式确定音效的播放状态,就可解决现有的在以函数进行音效状态判断时,虽然播放的所有音效中有一音效已停止播放,但通过函数进行判断时,却误判该音效仍未停止而造成所有音效无法正常播放的情事发生。通过本发明可令使用Linux操作系统的计算机,可依据已播放时间与音效播放时间相互间的关系,即可明确得知所有音效是否均已终止播放,若未全部终止,不进行任何后续动作,借以避免干扰其它未终止播放音效的正常输出,并可减少音效输出时的失真情形,进而提高音效的输出效率。