CN113791752A - 在安卓系统中通过js同步控制网页音乐播放状态的方法 - Google Patents
在安卓系统中通过js同步控制网页音乐播放状态的方法 Download PDFInfo
- Publication number
- CN113791752A CN113791752A CN202111085399.4A CN202111085399A CN113791752A CN 113791752 A CN113791752 A CN 113791752A CN 202111085399 A CN202111085399 A CN 202111085399A CN 113791752 A CN113791752 A CN 113791752A
- Authority
- CN
- China
- Prior art keywords
- webpage
- playing
- music
- state
- webview
- 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 27
- 238000012544 monitoring process Methods 0.000 claims description 8
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
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/167—Audio in a user interface, e.g. using voice commands for navigating, audio feedback
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Multimedia (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- General Health & Medical Sciences (AREA)
- Human Computer Interaction (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明提供了一种在安卓系统中通过js同步控制网页音乐播放状态的方法,通过安卓Service组件创建和管理webview,实现了在网页音乐播放器播放的同时,也可以浏览其他的app内容;同时在浏览其他app内容时,可以通过js与网页音乐播放器交互,同步显示网页音乐播放的状态和控制网页音乐的播放和暂停。
Description
技术领域
本发明涉及网页音乐控制领域,特别是涉及一种在安卓系统中通过js同步控制网页音乐播放状态的方法。
背景技术
安卓app通过webview加载有音乐播放器的网页可以播放音乐,如加载qq音乐的网页,但是当安卓app退出当前页面时,webview会销毁回收,导致音乐播放停止;同时网页中播放器的播放、暂停、快进等操作只能在网页中控制,安卓原生app无法控制,这就导致如果要播放网页资源的音乐,只能停留在网页播放器界面,无法实现播放网页音乐资源的同时浏览app内的其他内容。
因此,亟需一种在安卓系统中通过js同步控制网页音乐播放状态的方法,能够解决现有安卓系统在播放网页资源的音乐时,只能停留在网页播放器界面,无法同时浏览其他内容,且网页中音乐的播放状态无法通过安卓原生app同步状态和控制。
发明内容
本发明的目的是提供一种在安卓系统中通过js同步控制网页音乐播放状态的方法,以解决上述现有安卓系统在播放网页资源的音乐时,只能停留在网页播放器界面,无法同时浏览其他内容,且网页中音乐的播放状态无法通过安卓原生app同步状态和控制。
为实现上述目的,本发明提供了如下方案:
本发明提供一种在安卓系统中通过js同步控制网页音乐播放状态的方法,所述方法包括以下步骤:
(1)创建Service;
(2)创建webview;
(3)加载网页url,并播放音乐;
(4)通过js获取并控制网页播放器状态。
优选地,步骤(1)具体为:
(11)启动安卓app;
(12)通过调用bindService的方法创建Service,并获取Srevice对象保存在app中。
优选地,步骤(2)具体为:
(21)在Service中创建webview;
(22)开启webview的js支持功能,设置webview网页加载状态和重定向监听。
优选地,步骤(3)具体为:
(31)调用webview的loadurl加载相应的网页,网页的加载结果会通过步骤(22)中的网页加载状态监听上报;
(32)当收到网页加载完成的回调时,获取当前音乐的播放时长。
优选地,步骤(4)具体为:
(41)启动定时器每隔1秒钟通过js代码调用获取一次网页的播放器状态;
(42)当获取的播放状态为正在播放,则获取当前的播放进度;对比当前播放进度与音乐的播放时长,当当前播放进度大于或者等于音乐的播放时长时,判断一首歌播放结束,切换至下一首歌;
(43)通过js控制网页音乐的播放和暂停。
本发明相对于现有技术取得了以下有益技术效果:
本发明提供的一种在安卓系统中通过js同步控制网页音乐播放状态的方法,通过安卓Service组件创建和管理webview,实现了在网页音乐播放器播放的同时,也可以浏览其他的app内容;同时在浏览其他app内容时,可以通过js与网页音乐播放器交互,同步显示网页音乐播放的状态和控制网页音乐的播放和暂停。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的一种在安卓系统中通过js同步控制网页音乐播放状态的方法流程图;
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的目的是提供一种在安卓系统中通过js同步控制网页音乐播放状态的方法,以解决现有安卓系统在播放网页资源的音乐时,只能停留在网页播放器界面,无法同时浏览其他内容,且网页中音乐的播放状态无法通过安卓原生app同步状态和控制。
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
实施例1:
本实施例提供一种在安卓系统中通过js同步控制网页音乐播放状态的方法,如图1所示,方法包括以下步骤:
(1)创建Service;
(2)创建webview;
(3)加载网页url,并播放音乐;
(4)通过js获取并控制网页播放器状态。
具体地,步骤(1)具体为:
(11)启动安卓app;
(12)通过调用bindService的方法创建Service,并获取Srevice对象保存在app中,为后续的播放控制提供调用入口,app中绑定Service对象,Service的生命周期和application一致,即只要app存活,Service就存活,Service中的对象就存活。
进一步地,步骤(2)具体为:
(21)在Service中创建webview;
(22)开启webview的js支持功能,设置webview网页加载状态和重定向监听,开启js支持功能才可以通过js获取和控制音乐播放状态,网页加载状态监听可以获取网页加载完成,错误等信息,重定向监听,可以对网页跳转做过滤。
具体算法为:
WebView webView=new WebView(getApplicationContext());
WebSettings settings=webView.getSettings();
settings.setDomStorageEnabled(true);
settings.setJavaScriptEnabled(true);
settings.setLoadWithOverviewMode(true);
settings.setUseWideViewPort(true);
settings.setPluginState(WebSettings.PluginState.ON);
settings.setMixedContentMode(0);
settings.setMediaPlaybackRequiresUserGesture(false);
webView.requestFocus();
webView.setWebViewClient(new PlayWebViewClient());
webView.setWebChromeClient(new PlayWebChromeClient());
进一步地,步骤(3)具体为:
(31)调用webview的loadurl加载相应的网页,网页的加载结果会通过步骤(22)中的网页加载状态监听上报;
(32)当收到网页加载完成的回调时,获取当前音乐的播放时长。
具体算法为:
String javascriptStr="javascript:document.getElementById('h5audio_media').duration";
webView.evaluateJavascript(javascriptStr,callback);
进一步地,步骤(4)具体为:
(41)启动定时器每隔1秒钟通过js代码调用获取一次网页的播放器状态;具体算法为:
String javascriptStr="javascript:document.getElementById('h5audio_media').paused";
webView.evaluateJavascript(javascriptStr,callback);
(42)当获取的播放状态为正在播放,则获取当前的播放进度;对比当前播放进度与音乐的播放时长,当当前播放进度大于或者等于音乐的播放时长时,判断一首歌播放结束,切换至下一首歌;具体算法为:
String javascriptStr="javascript:document.getElementById('h5audio_media').currentTime";
webView.evaluateJavascript(javascriptStr,callback);
(43)通过js控制网页音乐的播放和暂停;
其中,播放的算法为:
String javascriptStr="javascript:document.getElementById('h5audio_media').play()";
webView.evaluateJavascript(javascriptStr,callback);
暂停的算法为:
String javascriptStr="javascript:document.getElementById('h5audio_media').pause()";
webView.evaluateJavascript(javascriptStr,callback);
通过viewgroup的addView方法,需要展示网页时,将webview添加到父布局中,界面销毁时通过removeView方法,将webview移除。
当webview不可以见时,可以通过步骤(4)中的js方法获取和控制音乐的播放状态。
本发明应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上,本说明书内容不应理解为对本发明的限制。
Claims (5)
1.在安卓系统中通过js同步控制网页音乐播放状态的方法,其特征在于:所述方法包括以下步骤:
(1)创建Service;
(2)创建webview;
(3)加载网页url,并播放音乐;
(4)通过js获取并控制网页播放器状态。
2.根据权利要求1所述的在安卓系统中通过js同步控制网页音乐播放状态的方法,其特征在于:步骤(1)具体为:
(11)启动安卓app;
(12)通过调用bindService的方法创建Service,并获取Srevice对象保存在app中。
3.根据权利要求2所述的在安卓系统中通过js同步控制网页音乐播放状态的方法,其特征在于:步骤(2)具体为:
(21)在Service中创建webview;
(22)开启webview的js支持功能,设置webview网页加载状态和重定向监听。
4.根据权利要求3所述的在安卓系统中通过js同步控制网页音乐播放状态的方法,其特征在于:步骤(3)具体为:
(31)调用webview的loadurl加载相应的网页,网页的加载结果会通过步骤(22)中的网页加载状态监听上报;
(32)当收到网页加载完成的回调时,获取当前音乐的播放时长。
5.根据权利要求4所述的在安卓系统中通过js同步控制网页音乐播放状态的方法,其特征在于:步骤(4)具体为:
(41)启动定时器每隔1秒钟通过js代码调用获取一次网页的播放器状态;
(42)当获取的播放状态为正在播放,则获取当前的播放进度;对比当前播放进度与音乐的播放时长,当当前播放进度大于或者等于音乐的播放时长时,判断一首歌播放结束,切换至下一首歌;
(43)通过js控制网页音乐的播放和暂停。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111085399.4A CN113791752A (zh) | 2021-09-16 | 2021-09-16 | 在安卓系统中通过js同步控制网页音乐播放状态的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111085399.4A CN113791752A (zh) | 2021-09-16 | 2021-09-16 | 在安卓系统中通过js同步控制网页音乐播放状态的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113791752A true CN113791752A (zh) | 2021-12-14 |
Family
ID=79183757
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111085399.4A Pending CN113791752A (zh) | 2021-09-16 | 2021-09-16 | 在安卓系统中通过js同步控制网页音乐播放状态的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113791752A (zh) |
Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20020037476A (ko) * | 2000-11-14 | 2002-05-22 | 정영수 | 웹 상에서 오디오용 웨이브 파일을 빠르게 재생하는 방법및 시스템 |
CN102497423A (zh) * | 2011-11-10 | 2012-06-13 | 贵阳朗玛信息技术股份有限公司 | 网页聊天室的放歌方法、装置及系统 |
CN103246665A (zh) * | 2012-02-08 | 2013-08-14 | 腾讯科技(深圳)有限公司 | 在切换网页时保持音乐续播的方法和装置 |
CN103491452A (zh) * | 2013-09-25 | 2014-01-01 | 北京奇虎科技有限公司 | 播放网页中视频的方法及装置 |
CN104484458A (zh) * | 2014-12-29 | 2015-04-01 | 北京奇虎科技有限公司 | 一种音乐播放方法及装置 |
CN105142017A (zh) * | 2015-08-12 | 2015-12-09 | 北京金山安全软件有限公司 | 一种图片视频播放时的图片切换方法及图片切换装置 |
CN106162362A (zh) * | 2015-04-20 | 2016-11-23 | 中兴通讯股份有限公司 | 一种视频播放方法及播放器 |
CN107665257A (zh) * | 2017-10-11 | 2018-02-06 | 成都知道创宇信息技术有限公司 | 一种浏览器窗口切换时暂停页面内活动的方法 |
CN107748684A (zh) * | 2017-11-21 | 2018-03-02 | 广东欧珀移动通信有限公司 | 实现自启动的处理方法、装置、存储介质及移动终端 |
CN107908929A (zh) * | 2017-11-24 | 2018-04-13 | 腾讯音乐娱乐科技(深圳)有限公司 | 播放音频数据的方法和装置 |
CN109634549A (zh) * | 2018-10-23 | 2019-04-16 | 中国平安人寿保险股份有限公司 | 音频播放方法、音频播放器、计算机装置及可读存储介质 |
CN109976831A (zh) * | 2019-03-28 | 2019-07-05 | 山东浪潮通软信息科技有限公司 | 一种JavaScript和原生APP之间数据交互方法 |
CN110275730A (zh) * | 2019-05-28 | 2019-09-24 | 广州九尾信息科技有限公司 | 一种基于安卓平台JavaScript定制服务化的方法及装置 |
CN111367622A (zh) * | 2020-03-09 | 2020-07-03 | 联通沃音乐文化有限公司 | 一种移动端网站无阻断播放音频系统和方法 |
CN112422508A (zh) * | 2020-10-19 | 2021-02-26 | 武汉烽火众智数字技术有限责任公司 | 一种在浏览器网页中播放视频的方法及系统 |
CN112559069A (zh) * | 2020-12-08 | 2021-03-26 | 腾讯科技(深圳)有限公司 | 子应用的运行控制方法、装置、存储介质和电子设备 |
-
2021
- 2021-09-16 CN CN202111085399.4A patent/CN113791752A/zh active Pending
Patent Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20020037476A (ko) * | 2000-11-14 | 2002-05-22 | 정영수 | 웹 상에서 오디오용 웨이브 파일을 빠르게 재생하는 방법및 시스템 |
CN102497423A (zh) * | 2011-11-10 | 2012-06-13 | 贵阳朗玛信息技术股份有限公司 | 网页聊天室的放歌方法、装置及系统 |
CN103246665A (zh) * | 2012-02-08 | 2013-08-14 | 腾讯科技(深圳)有限公司 | 在切换网页时保持音乐续播的方法和装置 |
CN103491452A (zh) * | 2013-09-25 | 2014-01-01 | 北京奇虎科技有限公司 | 播放网页中视频的方法及装置 |
CN104484458A (zh) * | 2014-12-29 | 2015-04-01 | 北京奇虎科技有限公司 | 一种音乐播放方法及装置 |
CN106162362A (zh) * | 2015-04-20 | 2016-11-23 | 中兴通讯股份有限公司 | 一种视频播放方法及播放器 |
CN105142017A (zh) * | 2015-08-12 | 2015-12-09 | 北京金山安全软件有限公司 | 一种图片视频播放时的图片切换方法及图片切换装置 |
CN107665257A (zh) * | 2017-10-11 | 2018-02-06 | 成都知道创宇信息技术有限公司 | 一种浏览器窗口切换时暂停页面内活动的方法 |
CN107748684A (zh) * | 2017-11-21 | 2018-03-02 | 广东欧珀移动通信有限公司 | 实现自启动的处理方法、装置、存储介质及移动终端 |
CN107908929A (zh) * | 2017-11-24 | 2018-04-13 | 腾讯音乐娱乐科技(深圳)有限公司 | 播放音频数据的方法和装置 |
CN109634549A (zh) * | 2018-10-23 | 2019-04-16 | 中国平安人寿保险股份有限公司 | 音频播放方法、音频播放器、计算机装置及可读存储介质 |
CN109976831A (zh) * | 2019-03-28 | 2019-07-05 | 山东浪潮通软信息科技有限公司 | 一种JavaScript和原生APP之间数据交互方法 |
CN110275730A (zh) * | 2019-05-28 | 2019-09-24 | 广州九尾信息科技有限公司 | 一种基于安卓平台JavaScript定制服务化的方法及装置 |
CN111367622A (zh) * | 2020-03-09 | 2020-07-03 | 联通沃音乐文化有限公司 | 一种移动端网站无阻断播放音频系统和方法 |
CN112422508A (zh) * | 2020-10-19 | 2021-02-26 | 武汉烽火众智数字技术有限责任公司 | 一种在浏览器网页中播放视频的方法及系统 |
CN112559069A (zh) * | 2020-12-08 | 2021-03-26 | 腾讯科技(深圳)有限公司 | 子应用的运行控制方法、装置、存储介质和电子设备 |
Non-Patent Citations (1)
Title |
---|
技术小黑屋: "Android Webview 后台播放音视频实现", pages 260 - 265, Retrieved from the Internet <URL:https://blog.csdn.net/androidyue/article/details/106545474> * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10529384B2 (en) | Video recording method and apparatus for mobile terminal | |
CN110062284B (zh) | 视频播放方法、装置和电子设备 | |
WO2017219833A1 (zh) | 一种应用程序页面开发管理方法及装置 | |
US11620784B2 (en) | Virtual scene display method and apparatus, and storage medium | |
CN105208442A (zh) | 一种视频播放应用程序的视频播放方法及装置 | |
CN108733291B (zh) | 一种通知消息的处理方法及装置 | |
US10231005B2 (en) | Operation instructing method and apparatus for remote controller of intelligent television | |
CN109391843B (zh) | 在线视频倍速播放方法、装置、介质及智能终端 | |
CN106921892B (zh) | 在线视频播放方法及装置 | |
CN105959821A (zh) | 一种视频播放方法及设备 | |
CN105573484A (zh) | 一种投影方法及终端 | |
CN105159677A (zh) | 终端用户界面的受控显示方法及装置 | |
CN109672902A (zh) | 一种视频抽帧方法、装置、电子设备和存储介质 | |
CN106775983A (zh) | 一种应用程序场景切换方法、系统及移动终端 | |
CN105025344A (zh) | 一种插播方法及装置 | |
CN101770371A (zh) | 应用主题内容预览方法及装置 | |
CN109068165A (zh) | 一种动态图显示方法及装置 | |
CN106878807B (zh) | 一种视频切换方法和装置 | |
CN113873316B (zh) | 直播间视频播放方法及装置 | |
CN109886861B (zh) | 一种高效率图档格式heif图像加载方法及装置 | |
CN104811795A (zh) | 在线视频播放方法及装置 | |
CN113791752A (zh) | 在安卓系统中通过js同步控制网页音乐播放状态的方法 | |
CN114356155A (zh) | 一种基于视频的交互方法、装置、设备及存储介质 | |
CN112735445A (zh) | 自适应选择音轨的方法、装置及存储介质 | |
CN106919375B (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 |