在安卓系统中通过js同步控制网页音乐播放状态的方法

文档序号:1963450 发布日期:2021-12-14 浏览:13次 >En<

阅读说明:本技术 在安卓系统中通过js同步控制网页音乐播放状态的方法 (Method for synchronously controlling webpage music playing state through js in android system ) 是由 鲁鹏飞 鲁霖 王春海 于 2021-09-16 设计创作,主要内容包括:本发明提供了一种在安卓系统中通过js同步控制网页音乐播放状态的方法,通过安卓Service组件创建和管理webview,实现了在网页音乐播放器播放的同时,也可以浏览其他的app内容;同时在浏览其他app内容时,可以通过js与网页音乐播放器交互,同步显示网页音乐播放的状态和控制网页音乐的播放和暂停。(The invention provides a method for synchronously controlling webpage music playing state through js in an android system, which is characterized in that webview is created and managed through an android Service component, so that the webpage music player can browse other app contents while playing; meanwhile, when other app contents are browsed, the webpage music player can interact with js to synchronously display the playing state of the webpage music and control the playing and pausing of the webpage music.)

在安卓系统中通过js同步控制网页音乐播放状态的方法

技术领域

本发明涉及网页音乐控制领域,特别是涉及一种在安卓系统中通过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方法获取和控制音乐的播放状态。

本发明应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上,本说明书内容不应理解为对本发明的限制。

7页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:运算电路、芯片和板卡

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类