Android / Ionic:使用 InAppBrowser 插件打开 link 时,MusicController 中的音频播放停止
Android / Ionic: audio playing in MusicController stops when opening a link with InAppBrowser plugin
我的 Android 项目是一个 Ionic 应用程序,它流式传输音频,当应用程序被推送到后台时也是如此。 MusicController 插件处理背景音频。一切都适用于我的应用程序,即音频可以在后台播放,同时在其他应用程序中执行操作。
但是,当我在我的应用程序中单击 URL 时,它是通过 InAppBrowser 插件 (=IAB) 在系统的浏览器中启动的,音频突然停止并且 MusicController 停止并关闭。然而,应用程序本身并没有关闭,因为它可以从任务视图重新激活而不显示启动画面。
有人知道为什么会这样吗?我可以阻止 IAB 插件关闭音频通道吗?
在我的 .ts 中:
import { InAppBrowser } from '@ionic-native/in-app-browser';
构造函数:
private iab: InAppBrowser,
并开启link的功能:
openExternalBrowser(link) {
this.iab.create(link, '_system');
}
附加信息:
从各自的图标打开任何系统浏览器时,音乐一直在后台播放,所以问题似乎出在 IAB 插件中。
大事有时会归结为小错误……我找到了发生这种情况的原因。问题不在插件中,而是 HTML 代码中的一个错误,我忽略了好几次…
<a href (click)="openExternalBrowser(item.webURL)">{{ item.webURL }}</a>
留在那儿的href标签已经过时了……而且当点击link元素时,它不能决定要做什么,它实际上通过返回主页(并关闭背景音乐播放器)使我的应用程序崩溃。
所以,简单的解决方案是从 HTML 中删除 href:
<a (click)="openExternalBrowser(item.webURL)">{{ item.webURL }}</a>
一切正常!
我的 Android 项目是一个 Ionic 应用程序,它流式传输音频,当应用程序被推送到后台时也是如此。 MusicController 插件处理背景音频。一切都适用于我的应用程序,即音频可以在后台播放,同时在其他应用程序中执行操作。
但是,当我在我的应用程序中单击 URL 时,它是通过 InAppBrowser 插件 (=IAB) 在系统的浏览器中启动的,音频突然停止并且 MusicController 停止并关闭。然而,应用程序本身并没有关闭,因为它可以从任务视图重新激活而不显示启动画面。
有人知道为什么会这样吗?我可以阻止 IAB 插件关闭音频通道吗?
在我的 .ts 中:
import { InAppBrowser } from '@ionic-native/in-app-browser';
构造函数:
private iab: InAppBrowser,
并开启link的功能:
openExternalBrowser(link) {
this.iab.create(link, '_system');
}
附加信息:
从各自的图标打开任何系统浏览器时,音乐一直在后台播放,所以问题似乎出在 IAB 插件中。
大事有时会归结为小错误……我找到了发生这种情况的原因。问题不在插件中,而是 HTML 代码中的一个错误,我忽略了好几次…
<a href (click)="openExternalBrowser(item.webURL)">{{ item.webURL }}</a>
留在那儿的href标签已经过时了……而且当点击link元素时,它不能决定要做什么,它实际上通过返回主页(并关闭背景音乐播放器)使我的应用程序崩溃。
所以,简单的解决方案是从 HTML 中删除 href:
<a (click)="openExternalBrowser(item.webURL)">{{ item.webURL }}</a>
一切正常!