HTML5 элемент видео очень медленно в Tizen (разработка Samsung Smart-Tv) - PullRequest
1 голос
/ 15 мая 2019

Я недавно начал программировать в среде Tizen и SDK, и я пытаюсь создать приложение Smart-TV (Samsung), которое берет ссылки на mp4-медиа и отображает эти ссылки в виде видеоплеера, проблемазаключается в том, что всякий раз, когда я использую тег HTML html5, приложению требуется загрузка (2-4 минуты), и большую часть времени оно вообще не загружается.

Код был протестирован наJsFiddle и локально, и там он прекрасно работает, но всякий раз, когда я пытаюсь выполнить тот же код в index.html в проекте Tizen (который выполняется в эмуляторе Samsung TV), он демонстрирует поведение, которое я только что объяснил (очень медленный / сбой).

Вот несколько примеров того, что я пробовал:

<html>
    <head>
        <link href="https://vjs.zencdn.net/7.5.4/video-js.css" rel="stylesheet">
    </head>

    <body>
        <video id='my-video' class='video-js' controls preload='auto' 
        width='640' height='264'
        poster="download.jpg" data-setup='{}'>
            <source src='sample.mp4' type='video/mp4'>
            <p class='vjs-no-js'>
                To view this video please enable JavaScript, and consider upgrading to a web browser that
                <a href='https://videojs.com/html5-video-support/' target='_blank'>supports HTML5 video</a>
           </p>
       </video>
       <script src='https://vjs.zencdn.net/7.5.4/video.js'></script>
   </body>
</html>

Я также пробовал без использования video-js, я пробовал использовать только элемент video, но тот же результатиногда он работает, иногда нет, и когда он будет работать, пройдет много времени, прежде чем он действительно загрузится.Согласно документации, поддерживается HTML5, а использование тега video даже «поощряется» опубликованными руководствами.Я также попытался сгенерировать HTML с помощью javascript и заставить его работать таким образом, но безуспешно.

1 Ответ

0 голосов
/ 16 мая 2019

Это может быть реализация тега видео эмулятора, кодека и т. Д. Я предполагаю, что вы не можете проверить код на реальном устройстве Tizen TV, поэтому я бы предложил сначала добавить прослушиватели событий и посмотреть, что происходит, затемпопробуйте AVPlay API , который я бы порекомендовал реализовать в ваших приложениях.

<body>
 <video id='video' width='700' height='400'
   poster='yourPosterURI' src='yourVideoURI'
   controls style='background:black'>
 </video>
</body>    


var videoElement = document.getElementById('video');

videoElement.addEventListener('loadeddata', function() {
   console.log('Video loaded.');
});

videoElement.addEventListener('timeupdate', function() {
   console.log('Current time: ' + videoElement.currentTime);
});

videoElement.addEventListener('seeked', function() {
    console.log('Seek operation completed.');
    videoElement.play();
});

videoElement.addEventListener('stalled', function() {
    console.log('Video stalled.');
});

videoElement.addEventListener('ended', function() {
    console.log('Video ended.');
});
...