angularjs - 通过 $http 服务使用 AngularJs 的 HTML5 音频播放器

标签 angularjs html audio html5-audio

HTML View

<audio ng-src="{{vm.videourlsce}}" autoplay preload="auto" controls="controls" autobuffer></audio>

在我的 Controller 内部,使用 $http 服务从卸妆服务器获取数据并更新到播放器
var vm = this;
vm.videourlsce = '';
$http.get(SERVER.apiurl+"resources/get_resource/?id="+$stateParams.id)    
.success(function(response){                    
     vm.resources = response.resource;                                          
     vm.videourl = vm.resources.url;                                                                          

}).error(function(error){                    
    console.log("Resources error");
});
$scope.$watch('vm.videourl', function(newVal, oldVal){
   if (newVal !== undefined) {
       console.log("Old Val => "+oldVal);
       console.log("New Val => "+newVal);
       vm.videourlsce = $sce.trustAsResourceUrl(newVal);  
   }
});

获得服务响应后,音频 URL 绑定(bind)到 src 属性上的音频标签并播放音频。但是控件不起作用。当我从音频标签中删除自动播放选项时,什么都不会发生。单击播放按钮时,这些控件不起作用。

当我对这个 URL 进行硬编码而不是从服务中获取时,它工作正常。有人帮忙吗?

最佳答案

这可能是浏览器错误处理 audio 更改的问题。来源。试试这个解决方法。

<div data-ng-if="vm.videourlsce">
    <audio ng-src="{{ ::vm.videourlsce }}" autoplay preload="auto" controls="controls" autobuffer></audio>
</div>

更新
在 OP 提供 codepen 之后很明显,问题在于 ionic 拦截点击和触摸事件。通过设置属性 data-tap-disabled="true" 很容易修复在一个节点上。
<div data-ng-if="videourl" data-tap-disabled="true" class="item item-body no-padding">
    <audio autoplay preload="auto" controls="controls" autobuffer>
        <source src="{{ ::videourl }}" type="audio/mpeg"/>
    </audio>
</div>
Updated codepen

关于angularjs - 通过 $http 服务使用 AngularJs 的 HTML5 音频播放器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40678654/

相关文章:

objective-c - 自定义 Segue 不播放声音

javascript - 如何从 HTML Angular 访问范围内的对象

javascript - AngularJS 指令渲染不稳定

audio - 使用Inno Setup获取声卡的供应商ID和设备ID

php - 自动提交复选框以保存到 MySQL

javascript - Meteor:如何在html页面上使用光标数组的数组显示列表

c++ - 在 Qt 5.3 中播放 WAV 文件

javascript - AngularJS 下拉菜单不显示选定的值

javascript - 如何通过单击按钮停止另一个函数调用的 setTimeout 计数器

javascript - 有效的 Javascript 片段无法在 codepen 或 jsfiddle 上运行?