私はvideojsを使用しています。何らかの理由で、完全にロードされている場合でも、ビデオの長さが 0 として表示されます。
video.js ファイルの 2487 行目で、このセクションを確認しました...
ControlBar.prototype.options_ = {
children: ['playToggle', 'volumeMenuButton', 'currentTimeDisplay', 'timeDivider', 'durationDisplay', 'progressControl', 'liveDisplay', 'remainingTimeDisplay', 'customControlSpacer', 'playbackRateMenuButton', 'chaptersButton', 'descriptionsButton', 'subtitlesButton', 'captionsButton', 'audioTrackButton', 'fullscreenToggle']
};
...「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();
}
コメントの提案から、次のように、videojs 要素が作成されたときに「loadedmetadata」イベントをリッスンすることも試みました。
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」イベントをリッスンするように変更し、DOES がコンソールされます。
これはビデオのエンコードの問題でしょうか? デュレーションのメタデータを含めて Premiere からエクスポートする方法を探していましたが、私が知る限り、そこにあります。
手がかり、大歓迎です。