角度$sce阻止了我的音频斑点源
Angular $sce blocking my audio blob src
我正在尝试将角度ngRepeat与html5音频标签一起使用。我有html:
<li ng-repeat="recordings in recordinglist">
<audio controls ng-src="{{recordings}}"></audio>
</li>
和 JS:
$scope.$apply($scope.recordinglist.push("blob:http%3A//localhost%3A9000/67ecfa65-3394-45a6-8f29-42f3421a2727"));
但是 angular 的同源检查导致插值时抛出错误:
Error: [$interpolate:interr] Can't interpolate: {{recordings}}
Error: [$sce:insecurl] Blocked loading resource from url not allowed by $sceDelegate policy. URL: blob:http%3A//localhost%3A9000/67ecfa65-3394-45a6-8f29-42f3421a2727
这似乎很愚蠢。它不是插值本地资源。我想有一种方法可以正确执行此操作 - 或者我应该提交错误报告?
我之前尝试为 webrtc 视频显示 blob src 时遇到了同样的问题,我通过使用$sce服务修复了它:
angular.module('moduleName', ['ngSanitize'])
.controller('ctrName', ['$sce', function($sce) {
$scope.recordings = $sce.trustAsResourceUrl(recordings);
}])
您也可以在此处查看文档。
对我来说,以下内容解决了这个问题:
$sce.trustAsResourceUrl
在此处查看SO问题并有更详细的解释
我的 blob 图像也遇到了类似的问题......试试这个:
基本上它允许 src 中的任何 blob 图像
app.config( ['$compileProvider', function($compileProvider){
$compileProvider.imgSrcSanitizationWhitelist(/^'s*(blob):/);
// another sample to allow diffrent kinds of url in <a>
// $compileProvider.urlSanitizationWhitelist(/^'s*(https?|ftp|mailto):/);
}]);
解决此问题的最佳方法是创建受信任的筛选器。
app.filter('trusted', ['$sce', function ($sce) {
return function(url) {
return $sce.trustAsResourceUrl(url);
};}]);
并在 ng-src 中使用此过滤器。
<li ng-repeat="recordings in recordinglist">
<audio controls ng-src="{{recordings |trusted}}"></audio></li>
从文件读取器获取 Blob 时,可能需要添加$scope.$apply()
来触发监视并相应地绑定。
InitRecording = function() {
var reader = new FileReader();
reader.onload = function() {
audioSRC = $sce.trustAsResourceUrl(reader.result);
$scope.$apply();
};
reader.readAsDataURL(recordedBlob);
}
相关文章:
- 如何检测我的音频流是:正在播放、暂停还是已完成
- 将音频添加到我的网页
- 为什么我的代码使用javascript与html5音频播放器可以'Don’我不能做两个或两个以上
- 需要帮助修复我的javascript"对于循环“;播放音频播放列表
- 角度$sce阻止了我的音频斑点源
- 为什么我的音频没有倒带
- 太多的音频标签使我的网站加载速度非常慢.有没有解决方案
- 为什么我的 PeerJS 音频聊天应用程序不起作用
- 当用户退出我的网站时播放音频
- 如何将我的嵌入式音频和JavaScript正确转换为HTML5音频
- 如何将此代码应用于我的音频
- 我的音频播放器未连接到播放器
- 添加混响效果到我的音频文件
- 在html中预加载我的音频文件
- Phonegap:在锁屏和下拉状态栏中显示音频控制和我的音频流的元信息
- 不能播放和暂停我的音频文件时,按播放和按暂停
- 我只希望我的音频mp3文件播放一次,但它没有发生
- 如何在我的音频播放器播放mp3文件时传递Javascript变量
- 我的音频文件无法播放
- 为什么我的音频自动播放两次