angularjs - 音频播放速率不适用于 AngularJS
问题描述
我正在尝试更改 HTML5 音频播放器的速度。这是我的代码:
app.controller('HomeController', function($scope, $document, ...) {
var audioPlayer0 = $document[0].getElementById("audioPlayer0");
console.log(audioPlayer0);
audioPlayer0.playbackRate = 0.5;
console.log(audioPlayer0.playbackRate);
};
这是日志:
<audio controls preload="auto" id="audioPlayer0" ng-src="http://audio.oxforddictionaries.com/en/mp3/not_us_1.mp3">…</audio>
0.5
AngularJS 使用$document
而不是document
. getElementById
正在挑选正确的元素。的值playbackRate
已设置。但音频播放器继续以正常速度播放。知道有什么问题吗?
解决方案
我的 HMTL 音频播放器在模板中,点击一个按钮可以减慢音频播放速度:
<audio controls id="audioplayer{{$index}}" preload="auto" ng-src="{{pronunciation.audioFiles}}"></audio>
<div class="col-sm-1 col-md-1 col-lg-1">
<button type="button" class="btn btn-default" ng-click="slowAudio($index)">Slow</button>
</div>
处理程序在控制器中:
$scope.slowAudio = function(index) {
let audioplayer = 'audioplayer' + index;
document.getElementById(audioplayer).playbackRate = 0.5;
};
一个问题是音频播放器在页面加载之后加载。getElementById
新代码在处理程序运行以查找音频播放器之前等待用户单击按钮。
另一个问题是我的页面至少有三个音频播放器,用于三个或更多录音。id="audioplayer{{$index}}"
为每个音频播放器动态生成唯一的元素 ID。该按钮通过用户选择的音频播放器。然后,处理程序通过元素 ID 获取该唯一的音频播放器并设置playbackRate
.
推荐阅读
- r - 更改 R 库的位置会引发错误
- database - 如何访问以下 Firebase 响应
- amazon-web-services - aws s3 存储桶 AES 加密(非 kms)访问被拒绝
- swift - 在 mac osx Swift 中导入 pkcs12
- python - HTTPError('405 客户端错误: 不允许 url: https://mywebsite/api/v1/authenticate'
- amazon-web-services - 到 Kafka 的 AWS Sqs 源连接器
- linux - 从汇编函数调用返回到 C 程序时,如何处理堆栈指针寄存器?
- database - 在 SharePoint 中集成附件的最佳方式是什么?
- matlab - Monte Carlo Localization - Matlab getParticles 函数为所有粒子返回相同的权重
- nan - 将变量类型从 NaN 更改为数字 JavaScript