0

私は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 からエクスポートする方法を探していましたが、私が知る限り、そこにあります。

手がかり、大歓迎です。

4

1 に答える 1