【发布时间】:2017-05-05 09:37:50
【问题描述】:
我无法弄清楚我的音频标签发生了什么。
我对 ionic 有 2 个不同的视图,有 2 个不同的控制器,每个控制器都有自己的音频标签。
<audio controls="true">
<source data-ng-src="{{getUrl()}}" type="audio/mpeg">
</audio>
它们工作得很好,但是当我直接在 viewAudio1 和 viewAudio2 之间切换时,即使在开发工具中,src 也不会与音频标签正在播放的文件匹配。 我触发这个函数来更新音频:
function loadAudio() {
var audio = document.getElementsByTagName("audio")[0];
document.getElementById('timeline').style.width = '0%';
audio.setAttribute("src", $scope.getUrl());
audio.pause();
audio.load();
}
我已经尝试了很多方法来解决这个问题。
【问题讨论】:
-
Url 已正确更改,所以
getUrl()方法显示新值,刷新时?如果它在函数中有正确的值,但没有超出,你应该使用NgZone -
getUrl 给出了很好的价值,我可以在音频标签的 src 属性中看到预期的 url。但它不播放 src 中的内容。我感觉当前视图的音频标签没有播放,而是最后一个视图的音频标签正在播放旧音频(可以理解吗?^^我不是母语人士抱歉)
-
您是否在某处暂停旧音频?因为
load之前的audio.pause()要暂停实际的音频,这是一个局部变量。所以首先为audio创建一个全局变量,然后pause(或停止),然后设置新属性并加载。 (顺便说一句。我理解你,在这里也一样:D) -
感谢
audio.pause()$ionicView.leave修复问题 =) -
我很高兴它现在正在工作,我将其添加为答案。
标签: javascript html angular audio ionic-framework