Я использую videojs.По какой-то причине продолжительность видео отображается как 0, даже при полной загрузке.
В строке 2487 файла video.js я позаботился об этом разделе ...
ControlBar.prototype.options_ = {
children: ['playToggle', 'volumeMenuButton', 'currentTimeDisplay', 'timeDivider', 'durationDisplay', 'progressControl', 'liveDisplay', 'remainingTimeDisplay', 'customControlSpacer', 'playbackRateMenuButton', 'chaptersButton', 'descriptionsButton', 'subtitlesButton', 'captionsButton', 'audioTrackButton', 'fullscreenToggle']
};
...include свойство durationDisplay, так кто-нибудь знает, почему продолжительность отображается как 0?
Видео имеют формат mp4 и загружаются в директиве AngularJS:
app.directive('engVideo',['$timeout', '$http', function($timeout, $http) {
return {
restrict: 'A',
priority: 100,
replace: true,
templateUrl: 'components/video.html',
link: function(scope, element, attrs) {
....
function VideoJSPlayerInit(window, videojs) {
var player = videojs(scope.component.video.id, {
html5: {
nativeTextTracks: false
}
});
player.pause();
}
По предложению в комментариях я также попытался прослушать событие «loadedmetadata », когда videojsэлемент создается следующим образом:
function VideoJSPlayerInit(window, videojs) {
var player = videojs(scope.component.video.id, {
html5: {
nativeTextTracks: false
}
}, function() {
this.on('loadedmetadata', function(){
console.log("video metadata loaded");
});
}
);
Но на консоль ничего не выводится - так что я предполагаю, что метаданные не загружены (?). Я также изменил его, чтобы прослушивать событие «loadeddata »и чтоУтешается.
Может ли это быть проблемой кодирования видео?Я искал, как экспортировать из Premiere с включенными метаданными длительности, но, насколько я могу судить, он есть.
Любые подсказки, высоко ценится.