我在嘗試將源設置爲AngularJS中的視頻時出現問題。Ng-Src更改視頻無法正常工作
下面是該視圖的HTML代碼:
<div class="row">
<div class="col-lg-10 col-lg-offset-1">
<video width="100%" controls>
<source ng-src="{{levelContent.levelVideo}}" type="video/mp4">
<!--<source ng-src="Content\img\cortes.mp4" type="video/mp4">-->
Your browser does not support HTML5 video.
</video>
</div>
</div>
下面是該視圖的控制器代碼:
(function() {
'use strict';
angular
.module('iziCooker')
.controller('LevelController', LevelController);
LevelController.$inject = ['$scope', 'LevelContentService', '$routeParams', 'LevelService', '$sce' ,'$location'];
function LevelController($scope, LevelContentService, $routeParams, LevelService, $sce ,$location) {
$scope.levelId = -1;
$scope.levelContent = [];
function GetLevelContent() {
LevelContentService.SetLevelId($routeParams.levelId);
$scope.levelId = LevelContentService.GetLevelId();
LevelService.GetLevelContent($scope.levelId).then(function (data) {
$scope.levelContent = data;
LevelContentService.SetLevelName = data.name + " - " + data.description;
$scope.levelContent.levelVideo = $sce.trustAsResourceUrl(data.levelVideo);
});
}
GetLevelContent();
console.log("Level Controller Loaded!");
}
})();
我測試我的IE瀏覽器和Chrome應用程序,與第一一個它正常工作,但沒有與我主要使用的第二個。
在IE:
在Chrome:
我單獨測試Chrome上的視頻,它工作正常。我也嘗試過硬編碼的src,就像你上面看到的那樣,它也可以工作。我認爲這可能是$ sce的東西,但似乎沒有。
你嘗試過直接在視頻元素上設置源取代你
<video>
標籤?我隱約記得有一個這樣的問題和ng-src不能在'https://github.com/angular/angular.js/issues/1352 – Ronnie
我試着直接設置源代碼,它的工作方式就像一個魅力。這很奇怪,角度和HTML5的行爲。非常感謝你! – jmrivas