CN109634549A - 音频播放方法、音频播放器、计算机装置及可读存储介质 - Google Patents
音频播放方法、音频播放器、计算机装置及可读存储介质 Download PDFInfo
- Publication number
- CN109634549A CN109634549A CN201811238891.9A CN201811238891A CN109634549A CN 109634549 A CN109634549 A CN 109634549A CN 201811238891 A CN201811238891 A CN 201811238891A CN 109634549 A CN109634549 A CN 109634549A
- Authority
- CN
- China
- Prior art keywords
- layer
- core layer
- presentation layer
- player
- control instruction
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 57
- 238000009434 installation Methods 0.000 title claims abstract description 28
- 239000010410 layer Substances 0.000 claims abstract description 195
- 239000012792 core layer Substances 0.000 claims abstract description 109
- 238000004590 computer program Methods 0.000 claims description 22
- 230000005540 biological transmission Effects 0.000 claims description 14
- 230000007175 bidirectional communication Effects 0.000 claims description 5
- 230000006854 communication Effects 0.000 claims description 5
- 238000004891 communication Methods 0.000 claims description 5
- 230000006870 function Effects 0.000 description 16
- 230000004044 response Effects 0.000 description 7
- 238000012545 processing Methods 0.000 description 4
- 230000018109 developmental process Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000005266 casting Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- PCHJSUWPFVWCPO-UHFFFAOYSA-N gold Chemical compound [Au] PCHJSUWPFVWCPO-UHFFFAOYSA-N 0.000 description 2
- 239000010931 gold Substances 0.000 description 2
- 229910052737 gold Inorganic materials 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000009472 formulation Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000008140 language development Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/16—Sound input; Sound output
- G06F3/162—Interface to dedicated audio devices, e.g. audio drivers, interface to CODECs
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- General Health & Medical Sciences (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
Abstract
一种音频播放方法,通过包括核心层、展示层与桥接层的音频播放器实现,所述核心层使用原生代码构建,所述展示层使用超文本标记语言构建,所述方法包括:展示层显示播放器界面,接收所述播放器界面上的用户操作,根据所述用户操作生成播放控制指令,将所述播放控制指令通过桥接层发送给核心层;核心层接收所述播放控制指令,根据所述播放控制指令进行播放控制,记录播放信息,将所述播放信息通过桥接层发送给展示层;展示层接收所述播放信息,根据所述播放信息更新所述播放器界面。本发明还提供一种音频播放器、计算机装置及计算机可读存储介质。本发明可以方便地修改播放器界面,并且播放器界面关闭后可以在后台继续播放音频。
Description
技术领域
本发明涉及多媒体技术领域,具体涉及一种音频播放方法、音频播放器、计算机装置和计算机可读存储介质。
背景技术
移动终端的不少应用程序有播放音频的需求。然而,移动终端的应用程序在播放音频上存在以下问题:
(1)不同移动终端的WebView内核版本不同,播放器界面存在兼容性问题。
(2)播放器界面关闭后,音频播放就停止了,无法满足后台继续播放音频的需求。
发明内容
鉴于以上内容,有必要提出一种音频播放方法、音频播放器、计算机装置和计算机可读存储介质,其可以方便地修改播放器界面,并且播放器界面关闭后可以在后台继续播放音频。
本申请的第一方面提供一种音频播放方法,所述音频播放器包括核心层、展示层与桥接层,所述核心层使用原生代码构建,所述展示层使用超文本标记语言构建,所述方法包括:
所述展示层显示播放器界面,接收所述播放器界面上的用户操作,根据所述用户操作生成播放控制指令,将所述播放控制指令通过所述桥接层发送给所述核心层;
所述核心层接收所述播放控制指令,根据所述播放控制指令进行播放控制,记录所述音频播放器的播放信息,将所述播放信息通过所述桥接层发送给所述展示层;
所述展示层接收所述播放信息,根据所述播放信息更新所述播放器界面。
另一种可能的实现方式中,所述核心层使用Java代码,所述展示层使用JavaScript代码。
另一种可能的实现方式中,所述展示层将所述播放控制指令通过所述桥接层发送给所述核心层包括:
在所述Java代码中实现一个类,给所述javascript调用;
将所述类注册到WebView的JavascriptInterface中;
在所述Javascript代码中通过所述类直接调用所述Java代码的类的方法。
另一种可能的实现方式中,所述核心层将所述播放信息通过所述桥接层发送给所述展示层包括:
在所述Javascript代码中实现一个方法;
所述Java代码通过WebView.loadUrl方法调用所述Javascript代码中实现的所述方法。
另一种可能的实现方式中,所述桥接层通过基于JSON的协议实现核心层和展示层的双向通信。
另一种可能的实现方式中,所述播放器界面包括以下一一项或多项的组合:播放按钮、暂停按钮、停止按钮、上一曲按钮、下一曲按钮、播放模式切换按钮、排序按钮、播放列表、进度条。
另一种可能的实现方式中,所述超文本标记语言包括第五代超文本标记语言。
本申请的第二方面提供一种音频播放装置,所述音频播放器包括核心层、展示层及桥接层,所述核心层使用原生代码构建,所述展示层使用超文本标记语言构建,其中,所述核心层包括:
第一接收单元,用于接收来自于所述展示层的播放控制指令;
播放单元,用于根据所述播放控制指令进行播放控制;
存储单元,用于记录所述音频播放器的播放信息;
第一发送模块,用于将所述播放信息通过所述桥接层发送给所述展示层;
所述展示层包括:
显示单元,用于显示所述音频播放器的播放器界面,接收所述播放器界面上的用户操作;
第二发送单元,用于根据所述用户操作生成所述播放控制指令,将所述播放控制指令通过所述桥接层发送给所述核心层;
第二接收单元,用于接收来自于所述核心层的所述播放信息;
所述显示单元,还用于根据接收的所述播放信息更新所述播放器界面;
所述桥接层,用于连接所述核心层和所述展示层,提供所述核心层和所述展示层之间的双向通信通道。
本申请的第三方面提供一种计算机装置,所述计算机装置包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现所述音频播放方法。
本申请的第四方面提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现所述音频播放方法。
本发明的音频播放方法通过音频播放器实现,所述音频播放器包括核心层、展示层与桥接层,所述核心层使用原生代码构建,所述展示层使用超文本标记语言构建,所述方法包括:所述展示层显示播放器界面,接收所述播放器界面上的用户操作,根据所述用户操作生成播放控制指令,将所述播放控制指令通过所述桥接层发送给所述核心层;所述核心层接收所述播放控制指令,根据所述播放控制指令进行播放控制,记录所述音频播放器的播放信息,将所述播放信息通过所述桥接层发送给所述展示层;所述展示层接收所述播放信息,根据所述播放信息更新所述播放器界面。
本发明的音频播放器的播放器界面可以方便地修改,实现音频播放器灵活发版。并且,音频播放器在原始代码构建的核心层进行音频播放,播放器界面关闭后,仍然可以播放音频,满足后台继续播放音频的需求。
附图说明
图1是本发明实施例提供的音频播放器的结构图。
图2是本发明实施例提供的音频播放方法的流程图。
图3是本发明实施例提供的计算机装置的结构图。
具体实施方式
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施例对本发明进行详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。
优选地,本发明的音频播放方法应用在一个或者多个计算机装置中。所述计算机装置是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(Application Specific IntegratedCircuit,ASIC)、可编程门阵列(Field-Programmable Gate Array,FPGA)、数字处理器(Digital Signal Processor,DSP)、嵌入式设备等。
所述计算机装置可以是,但不限于任何一种可与用户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互的电子产品,例如,平板电脑、智能手机、个人数字助理(Personal Digital Assistant,PDA)、智能穿戴式设备等。
实施例一
图1是本发明实施例一提供的音频播放器的结构图。所述音频播放器10包含在应用程序(例如平安金管家)中,用于在应用程序中实现音频播放功能。所述应用程序可以是运行在计算机装置的第三方应用程序。
参阅图1所示,所述音频播放器10包括核心层101、展示层102与桥接层103。
所述核心层101使用原生代码构建。
原生代码是使用操作***提供的SDK(Software Development Kit,软件开发工具包)所支持的语言开发的代码,可以访问操作***提供的所有功能和接口,没有隔离。不同的操作***可以使用不同的原生代码。例如,当操作***为iOS***时,原生代码可以是Objective-C(ObjC,扩充C的面向对象编程语言)代码;当操作***为安卓***时,原生代码可以是Java代码。
所述核心层101用于实现音频播放器10的播放控制和播放信息保存。所述播放控制包括:播放、暂停、停止、上一曲、下一曲、切换播放模式、排序、保存播放列表、调节播放进度等。所述核心层101保存的播放信息包括:播放器状态、当前播放列表、当前播放歌曲、当前播放进度、当前播放模式等。
具体地,所述核心层101包括第一接收单元1011、播放单元1012、存储单元1013、第一发送单元1014。
所述第一接收单元1011用于接收来自于展示层102的播放控制指令。
例如,第一接收单元1011接收来自于展示层102的播放指令。
又如,第一接收单元1011接收来自于展示层102的下一曲播放指令。
再如,第一接收单元1011接收来自于展示层102的播放模式切换指令。
所述播放单元1012用于根据所述播放控制指令进行播放控制。
例如,若接收到播放指令,播放单元1012播放当前歌曲。
又如,若接收到下一曲播放指令,播放单元1012播放下一曲歌曲。
再如,若接收到播放模式切换指令,播放单元1012切换音频播放器10的播放模式(例如由顺序播放改为单曲循环)。
所述存储单元1013用于记录音频播放器10的播放信息。
所述播报信息用来表示音频播放器10的状态。
例如,若播放单元1012响应于所述播放指令播放当前歌曲,存储单元1013记录播放器状态(此时为播放状态)、当前播放歌曲、当前播放进度等信息。
又如,若播放单元1012响应于下一曲播放指令播放下一曲歌曲,存储单元1013记录当前播放歌曲、当前播放进度等信息。
再如,若播放单元1012响应于所述播放模式切换指令切换音频播放器的播放模式(例如由顺序播放改为单曲循环),存储单元1013记录当前播放模式。
所述第一发送模块1014用于将所述播放信息通过所述桥接层103发送给所述展示层102。
例如,第一发送单元1014将播放器状态、当前播放歌曲、当前播放进度等信息通过所述桥接层传送给所述展示层102。
又如,第一发送单元1014将当前播放歌曲、当前播放进度等信息通过所述桥接层传送给所述展示层102。
再如,第一发送单元1014将当前播放模式通过所述桥接层传送给所述展示层102。
在展示层102使用Javascript代码的情况下,第一发送单元1014可以通过调用Javascript代码,来将所述播放信息传送给展示层102。例如,可以通过WebView.loadUrl方法调用Javascript代码,来将所述播放信息传送给展示层102。
所述展示层102使用超文本标记语言(Hyper Text Markup Language,HTML)构建。
超文本标记语言是一种用于创建网页的标准标记语言,通过标记符号来标记要显示的网页中的各个部分。“超文本”是指页面内可以包含图片、链接,甚至音频、程序等非文字元素。超文本标记语言的结构包括“头”部分(Head)、和“主体”部分(Body)。其中,“头”部分提供关于网页的信息,“主体”部分提供网页的具体内容。
在本实施例中,所述超文本标记语言可以是HTML5,即第五代超文本标记语言。HTML5是HTML最新的修订版本,2014年10月由万维网联盟(W3C)完成标准制定。HTML5的设计目的是为了在移动设备上支持多媒体。HTML5具有一些新的特性,包括:(1)用于绘画的canvas元素;(2)用于媒介回放的video和audio元素;(3)对本地离线存储有更好的支持;(4)新的特殊内容元素,比如article、footer、header、nav、section;(5)新的表单控件,比如calendar、date、time、email、url、search。
所述展示层102用于显示音频播放器10的播放器界面。
具体地,所述展示层102包括显示单元1021、第二发送单元1022、第二接收单元1023。
所述显示单元1021用于显示音频播放器10的播放器界面。
所述播放器界面包括多个用以播放控制的用户界面控件,例如播放按钮、暂停按钮、停止按钮、上一曲按钮、下一曲按钮、播放模式切换按钮、排序按钮、播放列表、进度条等。
所述显示单元1021还用于接收所述播放器界面上的用户操作,例如对所述用户界面控件的用户操作。例如,显示单元1021接收对所述播放按钮的点击操作。又如,显示单元1021接收对所述下一曲按钮的点击操作。再如,显示单元1021接收对所述播放模式切换按钮的点击操作。
所述第二发送单元1022用于根据所述用户操作生成播放控制指令,将所述播放控制指令通过所述桥接层103发送给所述核心层101。
例如,第二发送单元1022根据对所述播放按钮上的点击操作生成播放指令,将所述播放指令通过所述桥接层103发送给所述核心层101。
又如,第二发送单元1022根据对所述下一曲按钮的点击操作生成下一曲播放指令,将所述下一曲播放指令通过所述桥接层103发送给所述核心层101。
再如,第二发送单元1022根据对所述播放模式切换按钮的点击操作生成播放模式切换指令,将所述播放模式切换指令通过所述桥接层103发送给所述核心层101。
在展示层102使用Javascript代码的情况下,第二发送单元1022可以调用原生代码,来将所述播放控制指令通过所述桥接层103传送给核心层101。例如,可以通过WebView.addJavascriptInterface注册接口对象,然后在JavaScript中调用,从而将所述播放控制指令通过所述桥接层103传送给核心层101。
所述第二接收单元1023用于接收来自于核心层101的播放信息。
例如,第二接收单元1023接收所述播放器状态、当前播放歌曲、当前播放进度等信息。
又如,第二接收单元1023接收所述当前播放歌曲、当前播放进度等信息。
再如,第二接收单元1023接收所述当前播放模式。
所述显示单元1021,还用于根据接收的所述播放信息更新所述播放器界面。
例如,若接收到播放指令对应的播放信息(例如播放器状态、当前播放歌曲、当前播放进度),所述展示层更新所述播放器界面显示的播放器状态(修改为播放状态)、当前播放歌曲及当前播放进度。
又如,若接收到下一曲播放指令对应的播放信息(例如当前播放歌曲、当前播放进度),所述展示层更新所述播放器界面显示的当前播放歌曲及当前播放进度(将进度条位置调整至起始位置)。
再如,若接收到播放模式切换指令对应的播放信息(例如当前播放模式),所述展示层更新所述播放器界面显示的播放模式(将所述播放器界面显示的播放模式修改为当前播放模式)。
所述桥接层103用于连接所述核心层101和所述展示层102,提供所述核心层101和所述展示层102之间的双向通信通道。具体地,桥接层103接收来自于展示层102的播放控制指令,将所述播放控制指令传送给核心层101;以及接收来自于核心层101的音频播放器10的播放状态,将所述播放状态传送给展示层102。
在一实施例中,所述核心层101使用的代码(即原生代码)是Java代码,所述展示层102使用的代码(即Web应用开发所用的代码)是JavaScript(JS)代码,所述桥接层103可以通过JSSDK实现。
JavaScript是一种解释型的脚本语言,在程序的运行过程中逐行进行解释。JavaScript是基于对象的脚本语言,不仅可以创建对象,也能使用现有的对象。JavaScript采用事件驱动机制,它不需要经过Web服务器就可以对用户的输入做出响应。在访问一个网页时,鼠标在网页中进行鼠标点击或上下移、窗口移动等操作JavaScript都可直接对这些事件给出相应的响应。JavaScript脚本语言不依赖于操作***,仅需要浏览器的支持。因此JavaScript脚本在编写后可以带到任意机器上使用,目前JavaScript已被大多数的浏览器所支持。JavaScript虽然更新方便,但是不能直接访问操作***提供的功能。
Java是一门面向对象编程语言,具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。Java具有简单性、面向对象、分布式、健壮性、安全性、平***立与可移植性、多线程、动态性等特点,可用于编写桌面应用程序、Web应用程序、分布式***和嵌入式***应用程序。
JSSDK是一种在原生代码(即Java代码)和JavaScript代码之间通信的方案,可以实现原生代码和JavaScript之间的双向通信。其实现原理如下:
(1)JavaScript代码调用Java代码:通过WebView.addJavascriptInterface注册接口对象,然后在JavaScript中调用。具体如下:
第一步:
在原生代码中实现一个类,给javascript调用,例如:
其中,showToast接口实现的功能是弹出一个Toast提示。
第二步:
将所述类注册到WebView的JavascriptInterface中:
WebView.addJavascriptInterface(new Demo(),"demo");
第三步:
在Javascript代码中通过所述类直接调用该原生代码的类的方法:
function showToast(toast){
window.demo.showToast("hello");
}
(2)原生代码调用JavaScript代码:通过WebView.loadUrl方法调用Javascript代码。具体如下:
第一步:
在Javascript代码中实现一个方法:
function test(msg){
console.log(msg)
}
第二步:
原生代码通过WebView.loadUrl方法调用Javascript代码中的所述方法:
WebView.loadUrl("javascritp://test('hello')")
在本实施例中,所述桥接层103可以通过基于JSON的协议实现核心层和展示层的双向通信。JSON(JavaScript Object Notation,JS对象简谱)是一种轻量级的数据交换格式,采用完全独立于编程语言的文本格式来存储和表示数据,任何JavaScript支持的类型都可以通过JSON来表示,例如字符串、数字、对象、数组等。
在另一实施例中,所述桥接层103可以通过JSBridge实现。JSBridge是Java代码和JavaScript代码之间的另一种通信方式。Java代码可以通过一个固定的桥对象调用JavaScript代码,JavaScript代码也可以通过固定的桥对象调用Java代码。JSBridge是本领域的公知技术,此处不再赘述。
实施例一的音频播放器10包括核心层101、展示层102与桥接层103,所述核心层101使用原生代码构建,用于实现音频播放器10的播放控制和播放信息保存;所述展示层102使用超文本标记语言构建,用于显示音频播放器10的播放器界面;所述桥接层103用于连接所述核心层101和所述展示层102,提供所述核心层101和所述展示层102之间的双向通信通道。由于音频播放器10的播放器界面由超文本标记语言构建的展示层生成,因此,音频播放器10的播放器界面可以方便地修改,实现音频播放器灵活发版。并且,音频播放器10在原始代码构建的核心层进行音频播放,播放器界面关闭后,仍然可以播放音频,满足后台继续播放音频的需求。
实施例二
图2是本发明实施例二提供的音频播放方法的流程图。所述音频播放方法利用图1的音频播放器10在应用程序(例如平安金管家)中实现音频播放功能。所述音频播放器10包括核心层101、展示层102与桥接层103。所述音频播放方法具体包括以下步骤:
步骤201,展示层102显示播放器界面,接收所述播放器界面上的用户操作。
所述播放器界面包括多个用以播放控制的用户界面控件,例如播放按钮、暂停按钮、停止按钮、上一曲按钮、下一曲按钮、播放模式切换按钮、排序按钮、播放列表、进度条等。
所述展示层102可以接收对所述用户界面控件的用户操作。例如,展示层102接收对所述播放按钮的点击操作。又如,展示层102接收对所述下一曲按钮的点击操作。再如,展示层102接收对所述播放模式切换按钮的点击操作。
步骤202,展示层102根据所述用户操作生成播放控制指令,将所述播放控制指令通过所述桥接层103发送给核心层101。
例如,展示层102根据对所述播放按钮上的点击操作生成播放指令,将所述播放指令通过所述桥接层103发送给所述核心层101。
又如,展示层102根据对所述下一曲按钮的点击操作生成下一曲播放指令,将所述下一曲播放指令通过所述桥接层103发送给所述核心层101。
再如,展示层102根据对所述播放模式切换按钮的点击操作生成播放模式切换指令,将所述播放模式切换指令通过桥接层103发送给核心层101。
在展示层102使用Javascript代码的情况下,展示层102可以通过调用原生代码,来将所述播放控制指令传送给核心层101。例如,可以通过WebView.addJavascriptInterface注册接口对象,然后在JavaScript中调用,从而将所述播放控制指令通过所述桥接层103传送给核心层101。具体包括:(1)在原生代码(即Java代码)中实现一个类,给javascript调用;(2)将所述类注册到WebView的JavascriptInterface中;(3)在Javascript代码中通过所述类直接调用该原生代码的类的方法。
步骤203,核心层101接收所述播放控制指令。
例如,核心层101接收所述播放指令。
又如,核心层101接收所述下一曲播放指令。
再如,核心层101接收所述播放模式切换指令。
步骤204,核心层101根据所述播放控制指令进行播放控制。
例如,若接收到所述播放指令,核心层101播放当前歌曲。
又如,若接收到下一曲播放指令,核心层101播放下一曲歌曲。
再如,若接收到所述播放模式切换指令,核心层101切换音频播放器的播放模式(例如由顺序播放改为单曲循环)。
步骤205,核心层101记录音频播放器10的播放信息。
所述播报信息用来表示音频播放器10的状态。
例如,若响应于所述播放指令播放当前歌曲,核心层101记录播放器状态(此时为播放状态)、当前播放歌曲、当前播放进度等信息。
又如,若响应于下一曲播放指令播放下一曲歌曲,核心层101记录当前播放歌曲、当前播放进度等信息。
再如,若响应于所述播放模式切换指令切换音频播放器的播放模式(例如由顺序播放改为单曲循环),核心层101记录当前播放模式。
步骤206,核心层101将所述播放信息通过所述桥接层103发送给展示层102。
例如,核心层101将播放器状态、当前播放歌曲、当前播放进度等信息通过所述桥接层传送给所述展示层102。
又如,核心层101将当前播放歌曲、当前播放进度等信息通过所述桥接层传送给所述展示层102。
再如,核心层101将当前播放模式通过所述桥接层传送给所述展示层102。
在展示层102使用Javascript代码的情况下,第一发送单元1014可以通过调用Javascript代码,来将所述播放信息传送给展示层102。例如,可以通过WebView.loadUrl方法调用Javascript代码,具体包括:(1)在Javascript代码中实现一个方法;(2)原生代码(即Java代码)通过WebView.loadUrl方法调用Javascript代码中的所述方法。
步骤207,展示层102接收所述播放信息。
例如,展示层102接收所述播放器状态、当前播放歌曲、当前播放进度等信息。
又如,展示层102接收所述当前播放歌曲、当前播放进度等信息。
再如,展示层102接收所述当前播放模式。
步骤208,展示层102根据所述播放信息更新所述播放器界面。
例如,若接收到播放指令对应的播放信息(例如播放器状态、当前播放歌曲、当前播放进度),所述展示层更新所述播放器界面显示的播放器状态(修改为播放状态)、当前播放歌曲及当前播放进度。
又如,若接收到下一曲播放指令对应的播放信息(例如当前播放歌曲、当前播放进度),所述展示层更新所述播放器界面显示的当前播放歌曲及当前播放进度(将进度条位置调整至起始位置)。
再如,若接收到播放模式切换指令对应的播放信息(例如当前播放模式),所述展示层更新所述播放器界面显示的播放模式(将所述播放器界面显示的播放模式修改为当前播放模式)。
实施例二的音频播放方法中,音频播放器10的展示层102显示播放器界面,接收所述播放器界面上的用户操作,根据所述用户操作生成播放控制指令,将所述播放控制指令通过所述桥接层103发送给核心层101;核心层接收所述播放控制指令,根据所述播放控制指令进行播放控制,记录音频播放器10的播放信息,将所述播放信息通过所述桥接层103发送给所述展示层102;所述展示层接收所述播放信息,根据所述播放信息更新所述播放器界面。由于音频播放器的播放器界面由超文本标记语言构建的展示层生成,因此,实施例二可以方便地修改音频播放器10的播放器界面,实现音频播放器10灵活发版。并且,实施例二在原始代码构建的核心层101进行音频播放,播放器界面关闭后,仍然可以播放音频,满足后台继续播放音频的需求。
实施例三
本实施例提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述音频播放方法实施例中的步骤,例如图2所示的步骤201-208:
步骤201,展示层102显示播放器界面,接收所述播放器界面上的用户操作;
步骤202,展示层102根据所述用户操作生成播放控制指令,将所述播放控制指令通过桥接层103发送给核心层101;
步骤203,核心层101接收所述播放控制指令;
步骤204,核心层101根据所述播放控制指令进行播放控制;
步骤205,核心层101记录音频播放器10的播放信息;
步骤206,核心层101将所述播放信息通过桥接层103发送给展示层102;
步骤207,展示层102接收所述播放信息;
步骤208,展示层102根据所述播放信息更新所述播放器界面。
或者,该计算机程序被处理器执行时实现上述装置实施例中各模块/单元的功能,例如图1中的核心层101、展示层102、桥接层103:
展示层102,使用超文本标记语言构建,用于显示播放器界面,接收所述播放器界面上的用户操作,根据所述用户操作生成播放控制指令,将所述播放控制指令通过所述桥接层103发送给所述核心层101;
核心层101,使用原生代码构建,用于接收所述播放控制指令,根据所述播放控制指令进行播放控制,记录所述音频播放器的播放信息,将所述播放信息通过所述桥接层103发送给所述展示层102;
展示层102,还用于接收所述播放信息,根据所述播放信息更新所述播放器界面;
桥接层103,用于连接所述核心层101和所述展示层102,提供所述核心层101和所述展示层102之间的双向通信通道。
实施例四
图3为本发明计算机装置较佳实施例的示意图。所述计算机装置1包括存储器20、处理器30以及存储在所述存储器20中并可在所述处理器30上运行的计算机程序40,例如音频播放程序。所述处理器30执行所述计算机程序40时实现上述音频播放方法实施例中的步骤,例如图2所示的步骤201-208:
步骤201,展示层102显示播放器界面,接收所述播放器界面上的用户操作;
步骤202,展示层102根据所述用户操作生成播放控制指令,将所述播放控制指令通过桥接层103发送给核心层101;
步骤203,核心层101接收所述播放控制指令;
步骤204,核心层101根据所述播放控制指令进行播放控制;
步骤205,核心层101记录音频播放器10的播放信息;
步骤206,核心层101将所述播放信息通过桥接层103发送给展示层102;
步骤207,展示层102接收所述播放信息;
步骤208,展示层102根据所述播放信息更新所述播放器界面。
或者,所述处理器30执行所述计算机程序40时实现上述装置实施例中各模块/单元的功能,例如图1中的核心层101、展示层102、桥接层103:
展示层102,使用超文本标记语言构建,用于显示播放器界面,接收所述播放器界面上的用户操作,根据所述用户操作生成播放控制指令,将所述播放控制指令通过所述桥接层103发送给所述核心层101;
核心层101,使用原生代码构建,用于接收所述播放控制指令,根据所述播放控制指令进行播放控制,记录所述音频播放器的播放信息,将所述播放信息通过所述桥接层103发送给所述展示层102;
展示层102,还用于接收所述播放信息,根据所述播放信息更新所述播放器界面;
桥接层103,用于连接所述核心层101和所述展示层102,提供所述核心层101和所述展示层102之间的双向通信通道。
示例性的,所述计算机程序40可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器20中,并由所述处理器30执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序40在所述计算机装置1中的执行过程。例如,所述计算机程序40可以被分割成图1中的核心层101、展示层102、桥接层103,各层具体功能参见实施例一。
所述计算机装置1可以是,但不限于任何一种可与用户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互的电子产品,例如,平板电脑、智能手机、个人数字助理(Personal Digital Assistant,PDA)、智能穿戴式设备等。本领域技术人员可以理解,所述示意图3仅仅是计算机装置1的示例,并不构成对计算机装置1的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述计算机装置1还可以包括输入输出设备、网络接入设备、总线等。
所称处理器30可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器30也可以是任何常规的处理器等,所述处理器30是所述计算机装置1的控制中心,利用各种接口和线路连接整个计算机装置1的各个部分。
所述存储器20可用于存储所述计算机程序40和/或模块/单元,所述处理器30通过运行或执行存储在所述存储器20内的计算机程序和/或模块/单元,以及调用存储在存储器20内的数据,实现所述计算机装置1的各种功能。所述存储器20可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据计算机装置1的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器20可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
所述计算机装置1集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
在本发明所提供的几个实施例中,应该理解到,所揭露的计算机装置和方法,可以通过其它的方式实现。例如,以上所描述的计算机装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
另外,在本发明各个实施例中的各功能单元可以集成在相同处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在相同单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。计算机装置权利要求中陈述的多个单元或计算机装置也可以由同一个单元或计算机装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。
Claims (10)
1.一种音频播放方法,该方法通过音频播放器实现,其特征在于,所述音频播放器包括核心层、展示层与桥接层,所述核心层使用原生代码构建,所述展示层使用超文本标记语言构建,所述方法包括:
所述展示层显示播放器界面,接收所述播放器界面上的用户操作,根据所述用户操作生成播放控制指令,将所述播放控制指令通过所述桥接层发送给所述核心层;
所述核心层接收所述播放控制指令,根据所述播放控制指令进行播放控制,记录所述音频播放器的播放信息,将所述播放信息通过所述桥接层发送给所述展示层;
所述展示层接收所述播放信息,根据所述播放信息更新所述播放器界面。
2.如权利要求1所述的方法,其特征在于,所述核心层使用Java代码,所述展示层使用JavaScript代码。
3.如权利要求2所述的方法,其特征在于,所述展示层将所述播放控制指令通过所述桥接层发送给所述核心层包括:
在所述Java代码中实现一个类,给所述javascript调用;
将所述类注册到WebView的JavascriptInterface中;
在所述Javascript代码中通过所述类直接调用所述Java代码的类的方法。
4.如权利要求2所述的方法,其特征在于,所述核心层将所述播放信息通过所述桥接层发送给所述展示层包括:
在所述Javascript代码中实现一个方法;
所述Java代码通过WebView.loadUrl方法调用所述Javascript代码中实现的所述方法。
5.如权利要求1所述的方法,其特征在于,所述桥接层通过基于JSON的协议实现核心层和展示层的双向通信。
6.如权利要求1所述的方法,其特征在于,所述播放器界面包括以下一一项或多项的组合:播放按钮、暂停按钮、停止按钮、上一曲按钮、下一曲按钮、播放模式切换按钮、排序按钮、播放列表、进度条。
7.如权利要求1所述的方法,其特征在于,所述超文本标记语言包括第五代超文本标记语言。
8.一种音频播放器,其特征在于,所述音频播放器包括核心层、展示层及桥接层,所述核心层使用原生代码构建,所述展示层使用超文本标记语言构建,其中,所述核心层包括:
第一接收单元,用于接收来自于所述展示层的播放控制指令;
播放单元,用于根据所述播放控制指令进行播放控制;
存储单元,用于记录所述音频播放器的播放信息;
第一发送模块,用于将所述播放信息通过所述桥接层发送给所述展示层;
所述展示层包括:
显示单元,用于显示所述音频播放器的播放器界面,接收所述播放器界面上的用户操作;
第二发送单元,用于根据所述用户操作生成所述播放控制指令,将所述播放控制指令通过所述桥接层发送给所述核心层;
第二接收单元,用于接收来自于所述核心层的所述播放信息;
所述显示单元,还用于根据接收的所述播放信息更新所述播放器界面;
所述桥接层,用于连接所述核心层和所述展示层,提供所述核心层和所述展示层之间的双向通信通道。
9.一种计算机装置,其特征在于:所述计算机装置包括处理器,所述处理器用于执行存储器中存储的计算机程序以实现如权利要求1-7中任一项所述音频播放方法。
10.一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现如权利要求1-7中任一项所述音频播放方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811238891.9A CN109634549A (zh) | 2018-10-23 | 2018-10-23 | 音频播放方法、音频播放器、计算机装置及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811238891.9A CN109634549A (zh) | 2018-10-23 | 2018-10-23 | 音频播放方法、音频播放器、计算机装置及可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109634549A true CN109634549A (zh) | 2019-04-16 |
Family
ID=66066609
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811238891.9A Pending CN109634549A (zh) | 2018-10-23 | 2018-10-23 | 音频播放方法、音频播放器、计算机装置及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109634549A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110913277A (zh) * | 2019-11-29 | 2020-03-24 | 百度在线网络技术(北京)有限公司 | 一种视频播放方法、装置、电子设备及存储介质 |
CN112015407A (zh) * | 2019-05-31 | 2020-12-01 | 北京字节跳动网络技术有限公司 | 一种插件式播放器实现方法、装置及电子设备 |
CN112181366A (zh) * | 2020-09-28 | 2021-01-05 | 科大国创云网科技有限公司 | 基于跨平台交互的移动应用开发框架 |
CN113791752A (zh) * | 2021-09-16 | 2021-12-14 | 深圳市芯中芯科技有限公司 | 在安卓***中通过js同步控制网页音乐播放状态的方法 |
CN113810494A (zh) * | 2021-09-16 | 2021-12-17 | 腾讯科技(深圳)有限公司 | 音频播放控制方法、装置、终端及存储介质 |
WO2022166573A1 (zh) * | 2021-02-04 | 2022-08-11 | 上海哔哩哔哩科技有限公司 | 阅读处理方法、装置及*** |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110138354A1 (en) * | 2009-12-07 | 2011-06-09 | International Business Machines Corporation | Interactive video player component for mashup interfaces |
CN102625182A (zh) * | 2012-03-31 | 2012-08-01 | 百视通网络电视技术发展有限责任公司 | 互联网电视业务中集成和控制视频播放器的方法和*** |
US20120209413A1 (en) * | 2011-02-14 | 2012-08-16 | Microsoft Corporation | Background Audio on Mobile Devices |
CN102779046A (zh) * | 2012-07-04 | 2012-11-14 | 合一网络技术(北京)有限公司 | 一种基于html5开发的视频播放***及其视频播放方法 |
CN104951326A (zh) * | 2014-03-31 | 2015-09-30 | 腾讯科技(深圳)有限公司 | 网页访问方法及装置 |
CN105354013A (zh) * | 2014-08-18 | 2016-02-24 | 阿里巴巴集团控股有限公司 | 应用界面渲染方法及装置 |
CN105743955A (zh) * | 2014-12-11 | 2016-07-06 | 中国科学院声学研究所 | 一种扩展JavaScript对象方法 |
CN105791994A (zh) * | 2014-12-25 | 2016-07-20 | 深圳Tcl数字技术有限公司 | 一种基于Android***的webkit浏览器视频播放方法及装置 |
CN108683801A (zh) * | 2018-04-24 | 2018-10-19 | Oppo广东移动通信有限公司 | 控制音频播放的方法、装置、终端及计算机可读存储介质 |
-
2018
- 2018-10-23 CN CN201811238891.9A patent/CN109634549A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110138354A1 (en) * | 2009-12-07 | 2011-06-09 | International Business Machines Corporation | Interactive video player component for mashup interfaces |
US20120209413A1 (en) * | 2011-02-14 | 2012-08-16 | Microsoft Corporation | Background Audio on Mobile Devices |
CN102625182A (zh) * | 2012-03-31 | 2012-08-01 | 百视通网络电视技术发展有限责任公司 | 互联网电视业务中集成和控制视频播放器的方法和*** |
CN102779046A (zh) * | 2012-07-04 | 2012-11-14 | 合一网络技术(北京)有限公司 | 一种基于html5开发的视频播放***及其视频播放方法 |
CN104951326A (zh) * | 2014-03-31 | 2015-09-30 | 腾讯科技(深圳)有限公司 | 网页访问方法及装置 |
CN105354013A (zh) * | 2014-08-18 | 2016-02-24 | 阿里巴巴集团控股有限公司 | 应用界面渲染方法及装置 |
CN105743955A (zh) * | 2014-12-11 | 2016-07-06 | 中国科学院声学研究所 | 一种扩展JavaScript对象方法 |
CN105791994A (zh) * | 2014-12-25 | 2016-07-20 | 深圳Tcl数字技术有限公司 | 一种基于Android***的webkit浏览器视频播放方法及装置 |
CN108683801A (zh) * | 2018-04-24 | 2018-10-19 | Oppo广东移动通信有限公司 | 控制音频播放的方法、装置、终端及计算机可读存储介质 |
Non-Patent Citations (1)
Title |
---|
WEIXIN_33908217, Retrieved from the Internet <URL:https://blog.csdn.net/weixin_33908217/article/details/93589345> * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112015407A (zh) * | 2019-05-31 | 2020-12-01 | 北京字节跳动网络技术有限公司 | 一种插件式播放器实现方法、装置及电子设备 |
CN110913277A (zh) * | 2019-11-29 | 2020-03-24 | 百度在线网络技术(北京)有限公司 | 一种视频播放方法、装置、电子设备及存储介质 |
CN112181366A (zh) * | 2020-09-28 | 2021-01-05 | 科大国创云网科技有限公司 | 基于跨平台交互的移动应用开发框架 |
CN112181366B (zh) * | 2020-09-28 | 2023-01-24 | 科大国创云网科技有限公司 | 基于跨平台交互的移动应用开发框架 |
WO2022166573A1 (zh) * | 2021-02-04 | 2022-08-11 | 上海哔哩哔哩科技有限公司 | 阅读处理方法、装置及*** |
CN113791752A (zh) * | 2021-09-16 | 2021-12-14 | 深圳市芯中芯科技有限公司 | 在安卓***中通过js同步控制网页音乐播放状态的方法 |
CN113810494A (zh) * | 2021-09-16 | 2021-12-17 | 腾讯科技(深圳)有限公司 | 音频播放控制方法、装置、终端及存储介质 |
CN113791752B (zh) * | 2021-09-16 | 2024-06-11 | 深圳市芯中芯科技有限公司 | 在安卓***中通过js同步控制网页音乐播放状态的方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109634549A (zh) | 音频播放方法、音频播放器、计算机装置及可读存储介质 | |
CN105981394B (zh) | 持久媒体播放器 | |
Bucy et al. | Media access: Social and psychological dimensions of new technology use | |
CN102194003A (zh) | 一种网页弹窗方法及装置 | |
JP2023179795A (ja) | 弾幕処理方法、装置、電子機器及びプログラム | |
CN109947388A (zh) | 页面播读的控制方法、装置、电子设备及存储介质 | |
KR20150043333A (ko) | 선언형 템플릿을 사용하여 컨트롤을 스탬프 아웃하기 위한 사용자 인터페이스 컨트롤 프레임워크 | |
Johnsson et al. | Towards end-user development of graphical user interfaces for internet of things | |
CN101697156A (zh) | 一种构造链式网页的方法及*** | |
WO2003081436A1 (fr) | Navigateur et programme a contenu multimedia | |
CN111142833B (zh) | 基于情景模式开发语音交互产品的方法及*** | |
CN106028172A (zh) | 音/视频处理方法及装置 | |
CN108810132A (zh) | 动画显示方法、装置、终端、服务器及存储介质 | |
CN109391848A (zh) | 一种互动广告*** | |
CN114143572A (zh) | 直播交互方法、装置、存储介质、电子设备 | |
CN106250007B (zh) | 一种实现分支选择播放的***和方法 | |
CN104883614A (zh) | 一种基于Adobe FlashPlayer和Jquery框架的WEB视频播放方法 | |
Rab | A University website using Content Management System (CMS) and add-on plugins | |
CN108491232A (zh) | 在语音对话平台加载控件的方法及*** | |
CN109905753A (zh) | 角标的显示方法和装置、存储介质、电子装置 | |
CN110600021A (zh) | 室外智能语音交互方法、装置和*** | |
CN113392260A (zh) | 界面显示控制方法、装置、介质及电子设备 | |
CN112685120A (zh) | 一种可视化数据转换方法、装置、设备及介质 | |
CN113220200B (zh) | 演示文件的展示方法和装置、存储介质、电子装置 | |
CN106462868A (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 |